递归实现
请大神帮忙看看 谢谢啦 看什么? 本帖最后由 jackz007 于 2022-9-28 18:53 编辑def foo(n):
if not n:
print('取出钻戒')
else:
print('打开第' , n , '层盒子')
foo(n - 1)
print('盖上第' , n , '层盒子')
n = int(input('输入包装层数:'))
foo(n)
print('还原包装')
运行实况:
D:\\Python>python x.py
输入包装层数:8
打开第 8 层盒子
打开第 7 层盒子
打开第 6 层盒子
打开第 5 层盒子
打开第 4 层盒子
打开第 3 层盒子
打开第 2 层盒子
打开第 1 层盒子
取出钻戒
盖上第 1 层盒子
盖上第 2 层盒子
盖上第 3 层盒子
盖上第 4 层盒子
盖上第 5 层盒子
盖上第 6 层盒子
盖上第 7 层盒子
盖上第 8 层盒子
还原包装
D:\\Python> 本帖最后由 zhangjinxuan 于 2022-9-28 19:38 编辑
代码注释详细讲解,写这个不容易,求设最佳{:10_254:}
def open_boxs(n):
if n == 0: #判断边界条件,如果n等于0,那么就可以取出钻戒了
print("取出钻戒")
return #必须返回,否则会死递归
print("打开第", n, "层盒子") #先打开第n层盒子
open_boxs(n - 1) #再打开第n - 1层盒子
def close_boxs(n):
#注:在这里,是先递归,在盖上,因为要盖上第n层盒子需要盖上n - 1层盒子
if n == 0: #判断边界条件,如果要盖上第0层盒子,说明盒子就盖完了,返回
return
close_boxs(n - 1) #盖上第n - 1层盒子
print("盖上第", n, "层盒子") #输出
def main():
n = int(input("输入包装的层数: ")) #先输入
open_boxs(n) #再打开
close_boxs(n) #接着盖上
print("还原包装") #然后还原
return 0 #最后返回
main()
页:
[1]