用递归法求1到n的阶乘和,所谓递归无非就是函数自己调用自己,大佬的高端写法看不懂,给自己做个笔记
题目来自PTA
作者:王群芳
单位:合肥师范学院
代码长度限制:16 KB
时间限制:400 ms
内存限制:64 MB
裁判程序
unsigned long Fact(unsigned int n)
{
int i;
unsigned long result = 1;
for (i=2; i<=n; i++)
result *= i;
return result;
}
输入格式
用户从键盘输入正整数n的值。
输出格式
按输出样例的形式输出计算的结果。
输入样例
5
输出样例
sum=153
#include<stdio.h>
int main()
{
unsigned long Fact(unsigned int x);
int n,i,sum=0;
scanf("%d",&n);
for(i = 1;i <= n;i++)
{
sum+=Fact(i);
}
printf("sum=%d",sum);
return 0;
}
unsigned long Fact(unsigned int x)
{
int i;
unsigned long result = 1;
for(i=2;i<=x;i++)
{
result*=i;
}
return result;
}
附一个求阶乘函数
int fac(int n){
if(n==1){
return 1;
}
else{
return n*fac(n-1);
}
}