关于阶乘数字和的问题,我输入数据测试时,从1到12都是没问题的,但是从13开始就错了,我找不到原因在哪里,求各位指出来
为什么我输入数据测试时,从1到12都是没问题的,但是从13开始就错了,我找不到原因在哪里,求各位指出来/*阶乘数字和
我们知道一个数的阶乘n! = 1*2*……*n一般是一个很大的数。现在要计算的是一个数阶乘之后得出来的数所有位上的数字相加的和。
输入格式
输入为多case输入。每个case只有一行,输入一个正整数n(1<=n <= 50),当输入0时结束
输出格式
一个整数。
输入样例
5
2
0
输出样例
3
2
*/
#include <stdio.h>
int jiecheng(int n)
{
int s=1;
for(;n>1;n--)
{
s=s*n;
}
return s;
}
main()
{
int n,k[800],i=0,c;
scanf("%d",&n);
do
{
if(n>=1&&n<=50)
{
n=jiecheng(n);
for(c=0;n!=0;n=n/10)
{
c+=n%10;
}
k[i]=c;
i++;
}
scanf("%d",&n);
}while(n!=0);
k[i]=0;
for(i=0;k[i]!=0;i++)
printf("%d\n",k[i]);
}