递归的应用

来源:互联网 发布:青岛淘宝代运营公司 编辑:程序博客网 时间:2024/05/16 07:10

1、fabonacci数列问题

参见http://blog.csdn.net/qinyushuang/archive/2010/12/15/6078790.aspx

 

2、汉诺塔问题

 

 

T(n) = 2的n次方 - 1

 

3、走楼梯问题

有n级别楼梯,可以一次迈1级或者2级,问爬完此楼梯有多少种方式

 

 

4、整数的划分问题

对于一个正整数n的划分,就是把n表示成一系列正整数的和的表达式。注意:划分与顺序无关,例如6 = 1+5和6 = 5+1被认为是一种划分,另外,这个整数本身也是一种划分。

例如:

正整数6的划分有:

6

5+1

4+24+1+1

3+33+2+13+1+1+1

2+2+22+2+1+12+1+1+1+1

1+1+1+1+1+1

 

现在的问题是对于给定的正整数n,要去编算法计算出其划分的数目P(n);

 

分析:

 

 

5、从n个人中选出k个人组成一个队的组合数是多少?

分析:

递推式:假设n个人中有一个人叫做A,则从n个人中选出k个人的组合数  =k个人中包括A这个人的组合数 + k个人中不包括A这个人的组合数;

结束条件: 当k == 0 或者 n == k时,组合数为1

 

算法:

 

 

 

 

 

 

 

 

 

 

 

 

 

原创粉丝点击