怎样用数据结构(C语言)的递归方法实现(1!+2!+3!+。。。+n!)阶乘?
展开全部
#include<stdio.h>
long fun(int n)//递归单个阶乘
{
if(n == 1)
return 1;
else
return fun(n - 1) * n;
}
int main()
{
int n, i;
long num = 0;
scanf("%d", &n);
for(i = n; i > 0; i--)//累加阶乘
num += fun(i);
printf("%ld\n", num);
}
long fun(int n)//递归单个阶乘
{
if(n == 1)
return 1;
else
return fun(n - 1) * n;
}
int main()
{
int n, i;
long num = 0;
scanf("%d", &n);
for(i = n; i > 0; i--)//累加阶乘
num += fun(i);
printf("%ld\n", num);
}
追问
呵呵!谢了哦@但是你和我想的几乎一样,因为还是借助了循环!
这个题只是我个人突然的一种想法,就是我能用一个循环实现它了,我要想着怎样用递归实现它(不借助循环)!所以我自己再好好想想吧
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询