思路

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

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

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

于是就很简单了。

有一点是 printf("%03d",res) 可以将 res 用 $0$ 补足三位输出,同理 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;
}