杭电1097为什么这个代码总是WA,求教大神

2024-11-27 07:55:13
推荐回答(1个)
回答1:

#include
int main()
{
__int64 a,b,c[5],t,i;
while(scanf("%I64d%I64d",&a,&b)!=EOF)
{ a%=10; /* a可能是2^30超大数,a^3足可以把你弄死。只取一位*/
if(a!=0) /*题目已明确(0 {
if(b!=0) /*题目已明确(0 {
c[0]=1;
for(i=1;i<5;i++)
{
c[i]=c[i-1]*a;
c[i]%=10;
}
c[0]=c[4];
printf("%I64d\n",c[b%4]);
}
else /*此else删了。*/
{
printf("%d\n",1);
}
}
}
return 0;
}

修改后的程序。
#include
main()
{
__int64 a,b,c[5],t,i;
while(scanf("%I64d%I64d",&a,&b)!=EOF)
{ a%=10;
c[0]=1;
for(i=1;i<5;i++)
{
c[i]=c[i-1]*a;
c[i]%=10;
}
c[0]=c[4];
printf("%I64d\n",c[b%4]);
}
return 0;
}