0
点赞
收藏
分享

微信扫一扫

HDU 2035 人见人爱 A^B

梦想家们 2022-02-01 阅读 79
c++

问题描述

求 A^B 的最后三位数表示的整数。
说明:A^B 的含义是“A 的B 次方”

输入

输入数据包含多个测试实例,每个实例占一行,由两个正整数A 和B 组成 (1<=A,B<=10000),如果A=0, B=0,则表示输入数据的结束,不做处理

输出量

对于每个测试实例,请输出 A^B 的最后三位表示的整数,每个输出占一行。

样本输入

2 3
12 6
6789 10000
0 0

样本输出

8
984
1

代码

#include <iostream>
using namespace std;
//取模定理: (a*b)%1000 == ((a%1000) * (b%1000)) % 1000  用来防止溢出
int main(){
    int a, b,temp, i;
    while(cin>>a>>b,a||b){  //输入 两个0 停止
        temp = 1;
        for(i = 0; i < b; i++){
            temp = ((a % 1000) * (temp % 1000)) % 1000;	  //防止溢出	同时取后三位
        }
        printf("%d\n", temp);
    }
    return 0;
}
举报

相关推荐

0 条评论