python_ex4递归

# 斐波那契数列
def fbi(n):
    if n == 1 or n  == 2:
        return 1
    else:
        return fbi(n-1)+fbi(n-2)

n = eval(input())
print(fbi(n))
# 将所有输入的数字累乘
def cmul(a,*b):  # b 包括除了第一个输入外的所有
    m = a
    for i in b:
        m *=i
    return m

#print(eval("cmul({})".format(input())))
res = "cmul({})".format(input())   # 貌似传入参数不能是函数,这里传入字符串
print(eval(res))                   # 最后res应该是一个字符串相乘的表达式,要转换成数字
# 汉诺塔
steps = 0               # 看成两部分,1和n-1两个整体,用n=2模拟
def hanoi(src, des, mid, n):
    global steps
    if n == 1:
        steps = steps+1
        print("[STEP{:>4}] {}->{}".format(steps, src, des))
    else:
        hanoi(src,mid,des,n-1)
        steps = steps+1
        print("[STEP{:>4}] {}->{}".format(steps, src, des))
        hanoi(mid,des,src,n-1)

N = eval(input())
hanoi("A", "C", "B", N)

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值