Aaron学习笔记
少壮不努力,长大没饭吃!
posts - 4, comments - 13, trackbacks - 0, articles - 37
导航
C++博客
首页
新随笔
联系
聚合
管理
<
2024年11月
>
日
一
二
三
四
五
六
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
7
留言簿
(2)
给我留言
查看公开留言
查看私人留言
随笔档案
(4)
2009年5月 (2)
2009年4月 (2)
文章分类
(36)
C++学习(1)
C和指针(6)
JAVA基础(5)
Linux编程(7)
日常练习(10)
算法设计与分析(7)
文章档案
(37)
2011年7月 (1)
2011年6月 (3)
2011年5月 (1)
2011年4月 (2)
2010年9月 (1)
2010年8月 (4)
2010年7月 (1)
2009年9月 (2)
2009年8月 (1)
2009年7月 (2)
2009年5月 (2)
2009年4月 (3)
2009年3月 (10)
2009年1月 (4)
常去的网站
CSDN论坛
网易论坛
积分与排名
积分 - 66121
排名 - 341
最新随笔
1. 怎么说呢,哎
2. 郁闷,今天没有进展
3. 早起签个名
4. 每天都获得一点小进步
最新评论
1. re: 判断一个IP地址是不是合法
评论内容较长,点击标题查看
--yueyongqiang
2. re: Java中的内部类
很不错,学习了!
--clytze
3. re: 删除字符串中的一部分
没人发现这代码是不对的吗???
--tian
4. re: 字符串查找
不是很理解上方代码,貌似代码要求是查找字符串 但是上面只实现了对字符串的首字符进行匹配的工作
--lost-angel
5. re: 判断一个IP地址是不是合法
109.66.2.1
--fiona
阅读排行榜
1. 怎么说呢,哎(381)
2. 每天都获得一点小进步(349)
3. 郁闷,今天没有进展(331)
4. 早起签个名(318)
评论排行榜
1. 怎么说呢,哎(1)
2. 每天都获得一点小进步(0)
3. 早起签个名(0)
4. 郁闷,今天没有进展(0)
求阶乘n!和 Fibnoacci函数的递归与非递归
Posted on 2009-01-18 13:19
赞劲小子
阅读(3163)
评论(0)
编辑
收藏
引用
所属分类:
C和指针
、
算法设计与分析
求N的阶乘,对于阶乘,一般的递归运算的函数可以为
long
factorial(
int
n)
{
if
(n
<=
1
)
return
1
;
else
return
n
*
factorial(n
-
1
);
}
而非递归的运算函数可以表示为
long
factorial(
int
n )
{
int
result
=
1
;
while
( n
>
1
)
{
result
*=
n;
n
-=
1
;
}
return
result;
}
菲波那锲数列的定义都知道吧,是这样子的
它的递归函数都会写
long
fibonacci(
int
n )
{
if
( n
<=
2
)
return
1
;
else
return
fibonacci( n
-
1
)
+
fibonacci( n
-
2
);
}
但是它的递归函数实在效率太低,重复计算的值相当的多,所以我们需要改进,使用循环
long
fibonacci( int n )
{
long next_older_result = 0;
long previous_result = 1;
long result = 1;
if( 1 == n)
return 0;
else if( 2 == n)
return 1;
int i = 2;
while(i < n){
i++;
next_older_result = previous_result;
previous_result = result;
result = previous_result + next_older_result;
}
return result;
}
如果你仔细观察一下,你会发现以上两个的递归调用都是函数所执行的最后一项任务。这个函数是尾部递归
尾部递归很容易也成非递归的形式。
只有注册用户
登录
后才能发表评论。
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
相关文章:
匹配字符串中的花括号
保存输入的最长的数组(要判断输入是不是空行的)
求阶乘n!和 Fibnoacci函数的递归与非递归
删除字符串中的一部分
字符串反序函数
字符串查找
网站导航:
博客园
IT新闻
BlogJava
知识库
博问
管理
Powered by:
C++博客
Copyright © 赞劲小子