#include
intmain()
{
longlonginti,x,y,last;/*变量last保存求X的Y次方过程中的部分乘积的后三位*/
//输入
while(scanf("%lld,%lld",&x,&y)==2)
{
last=1;
x%=1000;//因为一个三位数的n次方的最后三位数只和这个数的最后三位数有关
y%=100;//因为可以发现这个是一个轮回,也就是说(13,13)==(13,113)
//需要注意轮回的起始位置是13
if(y<13){
y+=100;
}
//核心计算
for(i=0;i
last=last*x%1000;
//补充0
if(last<100){
printf("0");
if(last<10){
printf("0");
if(last<1){
printf("0\n");
continue;
}
}
}
printf("%d\n",last%1000);/*打印结果*/
}
return0;
}
扩展资料
C语言13的n次方的最后三位
#include
intmain()
{
inti,n,last_3;
charch='y';
while(ch=='y')
{
HERE:
printf("请输入大于1的整数:");
scanf("%d",&n);
ch=getchar();//接收回车符
if(n<=1)gotoHERE;
for(last_3=1,i=1;i<=n;i++)last_3=last_3*13%1000;
printf("13的%d次方的最后三位数为:%d\n",n,last_3%1000);
printf("putin\'y\'tocontinue:");
ch=getchar();
}
return0;
}