社区
C语言
帖子详情
递归问题!!!!!
ilbj
2003-07-14 12:15:04
p=1+2!+3!+4!+...+(n-1)!+n!
如何用递归算法实现??
...全文
97
11
打赏
收藏
递归问题!!!!!
p=1+2!+3!+4!+...+(n-1)!+n! 如何用递归算法实现??
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
fixopen
2003-07-14
打赏
举报
回复
template<int i>
class FACTOR
{
public:
enum
{
RESULT = i * FACTOR<I-1>::RESULT
};
};
class FACTOR<1>
{
public:
enum
{
RESULT = 1
};
};
class SUM<int i>
{
public:
enum
{
RESULT = FACTOR<i>::RESULT + FACTOR<i - 1>::RESULT;
};
};
如果你非常注重性能的话,你可以使用上一方案。:)
hillyee
2003-07-14
打赏
举报
回复
fun(a)
{int a,b;
if(a==1) return b=1;
if(a>1)
{b=a*fun(a);
return b;
}
}
main()
{int sum=0,x,n;
printf("n=%d",n);
scanf("%d",&n);
for(x=1;x<=n;x++) sum+=fun(x);
printf("sum=%d",sum);
}
zteliubin
2003-07-14
打赏
举报
回复
理解不过来,就:
fact(n)
{
if(n==0) return 1;
return n*fact(n-1);
}
fact_sum(n)
{
if(n==1) return 1;
return fact(n)+fact_sum(n-1);
}
不过栈要求高得多!
sam1111
2003-07-14
打赏
举报
回复
sorry,
是fact_sum(0, 1, 1, n);
sam1111
2003-07-14
打赏
举报
回复
int fact_sum(int s, int f, int i, int n)
{
if(i > n)
return s;
s += fact_sum(s, f*i, i+1, n);
return s;
}
fact_sum(0, 1, 0, n);
ajoo
2003-07-14
打赏
举报
回复
fact_sum(s, f, i, n){
if(i>n) return s;
else return fact_sum(s+f, f*(i+1), i+1, n);
}
fact_sum(0, 1, 1, n);
晨星
2003-07-14
打赏
举报
回复
p = 1 + 2(1 + 3(1 + 4(1 + ……(1 + n) …… )))
ajoo
2003-07-14
打赏
举报
回复
fact_sum(f, i, n){
if(i>n) return f;
else return fact_sum(f*i, i+1, n);
}
fact_sum(1, 2, n);
bigtea
2003-07-14
打赏
举报
回复
如果要好理解的,那就是在n!的递规函数的基础上,构造递规,因为楼主的表达式直读也是这个意思。
long factorial(int n) /*n!的递规函数*/
{
if (n<2) return 1;
else return (factorial(n-1)*n);
}
long fac_sum(int n) /*楼主的表达式递规实现*/
{
if (n<2) return 1;
else return (fac_sum(n-1)+factorial(n)); /*p(n)=p(n-1)+n!*/
}
main()
{
int n;
scanf("%d",&n);
printf("%ld",fac_sum(n));
}
98440622
2003-07-14
打赏
举报
回复
#include "iostream.h"
int element(int n)
{
if (n == 0)
return 1;
else
return n * element(n - 1);
}
int value(int m)
{
if (m == 1)
return 1;
else
return element(m) + value(m - 1);
}
void main()
{
cout<<value(3)<<endl;
}
注意n值的范围:-)
lyff8neo
2003-07-14
打赏
举报
回复
同意 hillyee(山之笛)!仅限tc!
fun(a)
{int a,b;
if(a==1) return b=1;
if(a>1)
{b=a*fun(a);
return b;
}
}
main()
{int sum=0,x,n;
printf("n=%d",n);
scanf("%d",&n);
for(x=1;x<=n;x++) sum+=fun(x);
printf("sum=%d",sum);
}
但是这边的int sum=0,x,n;
printf("n=%d",n);需要修改,在这里n是随机的必然打出来n=0啊!所以在这里只要写成printf("n=%d");就行了,你这是画蛇添足了哦^_^
汉诺塔
问题
:
递归
与非
递归
实现
本文详细介绍了汉诺塔
问题
,包括
问题
背景、
递归
解法和非
递归
(堆栈)解法。通过
递归
树分析了
递归
解法的深层逻辑,并提供了两种非
递归
实现方式,一种利用数组,另一种利用单向队列。此外,还探讨了
递归
与深度优先遍历的关系。
经典
递归
问题
本文探讨了经典的
递归
问题
,包括取球
问题
、全排列、最大公共子序列、字符串翻转、排列组合等,并通过
递归
思路进行了解析。
递归
的核心在于找到
问题
的出口和基本情况,通过分解
问题
来逐步求解。例如,取球
问题
可以通过取到特殊球或未取到特殊球两种情况
递归
求解。同时,文章也提到了汉诺塔游戏的
递归
解决方案,强调理解
递归
执行过程的重要性。
汉诺塔
问题
(
递归
与非
递归
)
本文深入探讨了汉诺塔
问题
的
递归
与非
递归
解法,详细解释了
递归
设计方法及其应用,同时提供了非
递归
解法的算法思路与实现步骤。
汉诺塔
问题
——
递归
算法与非
递归
算法
本文介绍了汉诺塔
问题
的经典算法,通过
递归
和非
递归
两种方式来解决,包括
递归
过程中的子
问题
分析、代码实现以及非
递归
时的循环结构分析。
几个经典的
递归
问题
本文深入探讨了
递归
算法的概念及应用,通过实例讲解了
递归
的两大关键要素:
递归
基与
递归
表达式。文章详细分析了包括阶乘、斐波那契数列、数组求和、字符串反转、最大公约数、插入排序和汉诺塔
问题
在内的经典
递归
案例,为读者提供了全面的
递归
算法理解与实践指导。
C语言
70,038
社区成员
243,247
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章