需要明确一点就是:无论a的多少次幂,都是末尾的数先乘以a再考虑向前进位,因此本题直接考虑每次幂的末尾3位,将每次的末尾3位乘以a循环进行b次
#include<stdio.h> int main(void) { int a, b; scanf("%d%d", &a, &b); long long int num = 1; for (int i = 1; i <= b; i++) { num *= a; num %= 1000; } printf("%03d", num); return 0; }
0.0分
1 人评分