问题描述
Description
请求N!(N<=10000),输出结果对10007取余
输入
每行一个整数n,遇到-1结束。
输出
每行一个整数,为对应n的运算结果。
Sample Input
1
2
-1
Sample Output
1
2
Source
ericxie
源代码及详细注释
我们要求的是,N的阶乘,再对10007取余
#include <stdio.h>
int main()
{
int n,i;
while(scanf("%d",&n)&&n!=-1)
{
int s=1;
for(i=1;i<=n;i++)//求阶乘,并且每步取余
{
s=(s*i)%10007;
}
printf("%d\n",s);
}
return 0;
}
上面的代码是对的,下面的代码是错的,请仔细比对下,为什么,可以在评论区里写下你的解答哦
#include <stdio.h>
int main()
{
int n,i,s=1;
while(scanf("%d",&n)&&n!=-1)
{
for(i=1;i<=n;i++)//求阶乘,并且每步取余
{
s=(s*i)%10007;
}
printf("%d\n",s);
}
return 0;
}
写于2021年8月4日23:25分。