题目:人见人爱a^b
代码:(其实很简单)
#include<stdio.h>
int main()
{
int a,b,t=0,i,j;
while(scanf("%d%d",&a,&b)!=EOF)
{
if(a==0 && b==0)break;
for(i=2,t=a;i<=b;i++)
{
if(t*a>=1000)
{
t=(t*a)%1000;
}
else t=t*a;
}
printf("%d
",t);
}
return 0;
}//只需保留后三位
看到题目的时候就清楚这是一个大数的运算,本来的想法是存字符串,但是怎么想也不明白。后来了解到每一次只需要存最后三位就可以,不必存a^b那么大的数。
t初始化存a的值,判断每一次的t*a
是否大于1000,如果大于1000,存最后三位数。这里有一个注意点: i要从2开始。