杭电ACM1395,请路过的大牛看看为什么WA? http://acm.hdu.edu.cn/showproblem.php?pid=1395

#include<stdio.h>

int main()
{
__int64 n,i,t,s;
while(scanf("%I64d",&n)!=EOF)
{
if(n%2==0)
printf("2^? mod %I64d = 1\n",n);
else if(n==1)
printf("2^0 mod %I64d = 1\n",n);
else
{
s=2;
t=1;
while(s!=1)
{
s=s*2%n;
t++;
}
printf("2^%I64d mod %I64d = 1\n",t,n);
}
}
return 0;
}

n=1的情况,是不是也要显示2^? mod 1 = 1

我试过了,把
else if(n==1)
printf("2^0 mod %I64d = 1\n",n);
改成
else if(n==1)
printf("2^? mod %I64d = 1\n",n);
就行了
温馨提示:内容为网友见解,仅供参考
无其他回答

Warning: Invalid argument supplied for foreach() in /www/wwwroot/aolonic.com/skin/templets/default/contents.html on line 45
相似回答
大家正在搜