intmain(){int n, m;while(~scanf("%d%d",&n,&m)){longlong ans =1;if(!n &&!m)break;while(m--){
ans *= n;
ans = ans -(ans /1000)*1000;}printf("%d\n", ans);}return0;}
利用好条件,避免溢出计算的时候只要每次求最后的3位的乘法模上3即可。int main() { int n, m; while (~scanf("%d%d", &n, &m)) { long long ans = 1; if (!n && !m) break; while (m--) { ans *= n; ans = ans - (ans / 1000) * 1000; } printf("%d\n", ans); }