算法题/递归

来源:互联网 发布:scratch创意编程 pdf 编辑:程序博客网 时间:2024/06/06 05:52

环境:python2.7

1.递归求和1+2+3+…..+n
思想:f(1) = 1
f(2) = f(1)+2
f(3) = f(2)+3
.
.
.
f(n) = f(n-1)+n

def add(n):        if n==1:                return 1        else:                return(add(n-1)+n)print(add(100))

结果:5050

2.递归求n! = n * (n-1) * (n-2) * …* 1(n>0)
f(1) = 1
f(2) = 1*2
f(3) = 1*2 *3
.
.
.
f(n) = f(n-1)*n

3.斐波纳契数列,又称黄金分割数列,指的是这样一个数列:1、1、2、3、5、8、13、21、……
f(1)= 1
f(2) = 1
f(3) = f(1)+f(2)
.
.
.
f(n) = f(n-1)+f(n-2)

def fibo(n):        if n==1 or n==2:                return 1        else:                return(fibo(n-1)+fibo(n-2))print(fibo(8))

4.兔子问题:一般而言,兔子在出生两个月后,就有繁殖能力,一对兔子每个月能生出一对小兔子来。如果所有兔子都不死,那么一年以后可以繁殖多少对兔子?
第一个月后,一对新兔子变老兔子
n = 1 —》 1(老兔子)
第二个月后,老兔子变老兔子,并且生下一对新兔子
n = 2 —》 1(老兔子)+ 1(新兔子)
第三个月后,老兔子变老兔子,并且生下一对新兔子,上个月的新兔子也变成老兔子
n = 3 —》 1(老兔子) + 1(新兔子)+ 1(老兔子)
。。。。。。
n = 4 1(老) 1(新) 1(老) 1(老) 1(新)
.
.
1,2,3,5,8,13,21……
类似于菲波那切数列

5.汉诺塔问题:汉诺塔问题是一个经典的问题。汉诺塔(Hanoi Tower),又称河内塔,源于印度一个古老传说。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,任何时候,在小圆盘上都不能放大圆盘,且在三根柱子之间一次只能移动一个圆盘。问应该如何操作?

这里写图片描述

思路:a中有n个盘子,要移动到c中
1.将a上方n-1个盘子,借助c移动到b
2.将a中第n个盘子从a移动到c
3.将b中n-1个盘子借助a移动到c
找到hano的数学表达式,其中,n-1,a,b,c为其参数。汉诺塔中有递归和迭代。
hano(1,,a,b,c) = move(1,a,c)
hano(2,a,b,c) = hano(2-1,a,c,b)
move(2,a,c)
hano(2-1,b,a,c)
hano(3,a,b,c) = hano(3-1,a,c,b)
move(3,a,c)
hano(3-1,b,a,c)
.
.
.
.
hano(n,a,b,c) = hano(n-1,a,c,b)
move(n,a,c)
hano(n-1,b,a,c)

def move(n,a,c):        print('%d'%n,'---%s'%a,'----%s'%c)def hano(n,a,b,c):        if n == 1:                move(n,a,c)        else:                hano(n-1,a,c,b)                move(n,a,c)                hano(n-1,b,a,c)print(hano(3,'a','b','c'))

这里写图片描述

对于递归问题解决思路是找到一个关于f(n)和f(n-1)的数学表达式

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 给别人转错钱了怎么办 转账到信用卡了怎么办 银行卡限额怎么办京东 预留信息忘了怎么办 中信银行香港卡怎么办 无银行预留信息怎么办 农工商超市红利卡怎么办 余额宝转入不了怎么办 公司车辆怎么办营运证 便利店转不出去怎么办 便利店开业营业额低怎么办 现在etc超时了怎么办? 中国银行e贷逾期怎么办 招商银行e分期逾期怎么办 保单贷款还不了怎么办 离婚时按揭房怎么办 按揭房子不要了怎么办? 征信有问题怎么办房贷 夫妻一方不做房贷共还人怎么办 给你花逾期一年怎么办 文件夹密码忘记了怎么办 网址被qq拦截怎么办 手机qq邮箱中毒怎么办 邮箱附件带病毒怎么办? 打开了病毒附件怎么办? qq邮箱被拦截怎么办 邮件地址已被注册怎么办 信用卡欠款怎么办房贷 贷款还不起了怎么办 装修贷款无抵押怎么办 黑户买房做贷款怎么办 易分期无法还款怎么办 工行晚还款一天怎么办 手机银行网页打不开怎么办 顺丰分拣错误怎么办 超市生意越来越差怎么办 收到逾期催收函怎么办 手机贷逾期了怎么办 临额到期还不上怎么办 信用卡不想用了怎么办 授信时间到了怎么办