#include
//求一个数的阶乘,结果对10007取余
int main()
{
int N;
int input[100];
int i;
unsigned long fac(int n);
N = 0;
while(scanf("%d",&input[N])&&(input[N]!=-1)&& N <100) //现将输入存到缓冲区
{
N++;
}
for(i = 0 ;i < N; i++)
{
printf("%d\n",fac( input[i]) %10007);
}
return 0;
}
unsigned long fac(int n)
{
if(n==0||n==1) return 1;
else return fac(n-1)*n;
}
结果
1
2
3
4
-1
1
2
6
24
请按任意键继续. . .
你的代码没有问题啊,唯独就是输入不是-1的负数的话会死机,改成N>=0就好了。
#include
//求数阶乘结10007取余
int main()
{
int N;
unsigned long fac(int n);
while(1)
{
scanf("%d",&N);
fflush(stdin);
if(N<0)
break;
else
printf("%d\n", fac(N)%10007);
}
return 0;
}
unsigned long fac(int n)
{
if(n==0||n==1)
return 1;
else
return fac(n-1)*n;
}
#include
//求一个数的阶乘,结果对10007取余
unsigned long fac(int n);
int main()
{
int N;
while(scanf("%d",&N))
{
if(N == -1) break;
printf("%d\n", fac(N)%10007);
}
return 0;
}
unsigned long fac(int n)
{
if(n==0||n==1) return 1;
else return fac(n-1)*n;
}
有错误贴上来
你遇到的是什么问题?大概说一下
程序没有错误吧?