#include stdio.h
main()
{
long n,sum=1;//10 以上的阶乘就比较大了
int i;
printf("请输入你要求的阶乘:")
scanf("%d",n);//先输入要求的数
for(i=n;i0;i--)//乘到1为止
sum*=i;
}
printf("%d != %d",n,sum);
return 0;
int getFactorial(int data) //求阶乘;bai
int resData=1;
for (int i=0;idata;i++)
duresData*=i;
return resData;
扩展资料:
0!=1.
定义的必要性
由于正整数的阶乘是一种连乘运算,而0与任何实数相乘的结果都是0.所以用正整数阶乘的定义是无法推广或推导出0!=1的.即在连乘意义下无法解释"0!=1".
给"0!"下定义只是为了相关公式的表述及运算更方便.
#includestdio.h
int f(int i)
if(i==1)
return 1;
return f(i-1)*i;
int main()
printf("%d\n",f(i));
int fun(int n)
int s=1, i;
for(i=1;i=n;++i)
s=s*i;
return s;
int n, s;
printf("请输入n的值:\n");
scanf("%d",n);
s=fun(n);
printf("n!=%d\n",s);
测试通过,请采纳
{if(n0)
{printf("error");
return 0;}
if(n==1) return 1;
{n*=n-1;//这里是阶乘
return n;
你可以测试一下,基本上就这样
fun(int?i)
int?j;
int?sum=0;
for(j=1;j=i;j++)
sum=sum+j*j;
printf("s%d=%d\n",j,sum);
return?sum;
//上面的代码是求平方和
//求阶乘可以这样:
int?fun(int?i)//返回类型不可少
int?sum=1;//从1开始
sum=sum?*?j;
//主函数中是求阶乘的和