思路

水个最朴素做法的题解……

显然不可能把 ab 计算出来。( python 可以应该是因为 python 的高精度乘法比较快)

显然求末三位有用的只是对 1000 取余的余数。

于是就很简单了。

有一点是 printf("%03d",res) 可以将 res0 补足三位输出,同理 scanf("%1d",res) 可以用于输入一位整数。

代码

#include<bits/stdc++.h>
using namespace std;
int a,b,res=1;//注意res应初始化为1
int main(){
scanf("%d%d",&a,&b);
for(int i=0;i<b;i++) {//需计算b次
res*=a;
res%=1000;//对1000取余
}
printf("%03d",res);//这里是用0补足三位输出
return 0;
}