python递归函数-作业

https://blog.csdn.net/weixin_43379056/article/details/86717780


写一个程序,可以计算输入数值的阶乘(也就是输入3就是123,输入4就是123*4)

这个递归函数我查了一下其实就是自己在函数中再次调用自己,
比如输入3,就是先把x定义成3,然后再进入一层再把x定义成2,
再进入一层把x定义成1,再进入一层把x定义成0,然后触发返回值
,返回到x = 1这层,从这层开始计算,然后把返回值返回到x = 2
那层再次计算,然后把返回值返回到x = 3那层再次计算,然后返回值

"""
1 定义递归函数
2 判断x是否到0,如果到了就返回1的那层,也就是上一层
3 计算递归的值
4 接收函数的返回值
5 打印结果

知识点
fact - 递归函数
"""


def fact(x):
    if x == 0:
        return 1
    print(x)
    return x * fact(x - 1)


x = int(input("请输入一个整数:"))

print(fact(x))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
头歌Python递归函数 - 汉诺塔的魅力 汉诺塔是一个经典的数学问题,包含三根柱子和一些圆盘,每个圆盘的大小不同。目标是将所有的圆盘从一根柱子移动到另一根柱子,并且在移动过程中要遵守以下规则:一次只能移动一个圆盘,大的圆盘不能放在小的圆盘上面。 使用Python递归函数来解决汉诺塔问题可以非常简洁和优雅。 假设有n个圆盘,我们可以将问题分解为三个步骤: 1. 将n-1个圆盘从起始柱子移动到辅助柱子上; 2. 将最后一个圆盘从起始柱子移动到目标柱子上; 3. 将n-1个圆盘从辅助柱子移动到目标柱子上。 这个问题本身就是一个递归的过程,因为在步骤1和步骤3中我们又需要对n-1个圆盘继续进行同样的操作。 下面是一个用Python递归函数来解决汉诺塔问题的示例代码: ``` def hanoi(n, start, auxiliary, end): if n == 1: print(f"Move disk 1 from {start} to {end}.") else: hanoi(n-1, start, end, auxiliary) print(f"Move disk {n} from {start} to {end}.") hanoi(n-1, auxiliary, start, end) ``` 在这个函数中,参数n表示圆盘的数量,start、auxiliary和end分别表示起始柱子、辅助柱子和目标柱子的名称。 通过递归调用hanoi函数,我们可以将n个圆盘从起始柱子移动到目标柱子上,并且每一步都打印出移动的过程。 使用这个递归函数,我们可以轻松地解决任意数量的圆盘的汉诺塔问题。只要调用hanoi函数并传入正确的参数即可。 希望这个简单的解释和示例代码能够帮助你理解头歌Python递归函数的魅力!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值