递归法求1!+2!+3!+4!+……+n!题⽬
求1!+2!+3!+4!+……+n!
思路
⽅法1:两重循环,外循环算阶乘和,内循环算阶乘(这个⽅法时间复杂度⾼,⽤⽅法2⽐较好)⽅法2:⼀重循环,第n个数的阶乘结果是n*第n-1个数的阶乘结果
C语⾔代码
⽅法1:
#include<stdio.h>
main()
{
int i,j,sum=0,n,sum1=1;
i=j=1;
scanf("%d",&n);
while(i<=n)
{
while(j<=i)
{
sum1=sum1*j;
j++;
printf("%d",sum1);
}
sum+=sum1;
i++;
}
printf("%d",sum);
return0;
}
⽅法2:
#include<stdio.h>
c语言用递归函数求n的阶乘main()
{
int i,j,sum=0,n,sum1=1;//sum为阶乘和,sum1为阶乘结果
i=j=1;
printf("请输⼊n:");
scanf("%d",&n);
while(i<=n)
{
sum1*=i;//计算阶乘,第n个数的阶乘结果是n*第n-1个数的阶乘结果
printf("%d\n",sum1);
sum+=sum1;
i++;
}
printf("%d",sum);
return0;
}
⽅法3(递归法)
#include<stdio.h>
int Temp(int a)
{
int b;
if(a==0) b=1;//递归出⼝
else b=a*Temp(a-1);
return(b);
}
int main()
{
int i,n,sum=0;
printf("请输⼊n:");
scanf("%d",&n);
for(i=1;i<=n;i++) sum+=Temp(i); printf("结果是:%d",sum);
}
结果
写在后⾯
欢迎⼤家指出错误的地⽅
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论