【蓝桥杯】省赛无忧班(Python 组)第 2 期 10.4递归

#1.阶乘
# def f(n) :
# #递归出口
#     if n <= 1:
#         return 1
#     ans = n * f(n - 1)
#     return ans
# n=int(input())
# print(f(n))
#
#
# def f(n, l):
#     # 递归出口
#     if n <= l:
#         return 1  # 当 n 小于等于 l 时,返回 1,因为不再有更多的项可以相乘
#     else:
#         return n * f(n - 1, l)  # 否则,返回 n 乘以从 n-1 到 n-l+1 的乘积
#
# # 示例:计算 5 乘以 4 乘以 3 乘以 2 乘以 1
# print(f(5, 1))  # 输出应该是 5!(5的阶乘),即 120
#
# # 另一个示例:计算 5 乘以 4 乘以 3
# print(f(5, 3))  # 输出应该是 60
#
# #2.汉诺塔
# def Move(n, A, B, C):
#     # 递归出口
#     if n == 0:
#         return
#         # n-1个盘子从A挪到B
#     Move(n - 1, A, C, B)
#     # 第n个盘子从A挪到C
#     print("{}->{}".format(A, C))
#     # n-1个盘子从B挪到C
#     Move(n - 1, B, A, C)
#
# # 输入盘子的数量
# n = int(input("请输入盘子的数量:"))
# # 调用函数开始移动盘子
# Move(n, 'A', 'B', 'C')

#3.
def f(n):
    # 递归出口
    if n == 0:
        return 1

    ans = 1
    for i in range(1, n // 2 + 1):
        ans += f(i)
    return ans

n = int(input("请输入一个整数:"))
print(f(n))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值