问题描述 Description 请求N!(N=10000),输出结果对10007取余 输入 每行一个整数n,遇到-1结束。 输出 每行一个整数,为对应n的运算结果。 Sample Input 1 2 -1 Sample Output 1 2 Source ericxie 源代码
问题描述
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分。