1、猴子吃桃
问题描述:
一个猴子第一天吃掉桃子的一半又多一个,第二天照此方法又吃掉剩下一半加一个,以后每天如此,直到第十天早上,只剩下了一个桃子,问第一天原本多少个桃子
代码实现:
def myfunc(n):
if n==1:
return 1
else:
return 2*(myfunc(n-1)+1)
a = myfunc(10)
print(a)
1534
2、杨辉三角形
问题描述:
打印杨辉三角形
算法设计:
杨辉三角形中的数正好是(x+y)的N次幂的展开式各项系数。
- 第x行有x个值
- 对于第x行的第y(y>=3)个值,有当y=1或y=x时,其值为1,剩下的值为第x-1行的第y-1个值和第y个值的和
代码实现:
def myfunc(x,y):
if y==1 or y==x:
return 1
else:
z = myfunc(x-1,y-1)+myfunc(x-1,y)
return z
n = int(input("请输入杨辉三角形的行数:"))
for i in range(1,n+1):
for j in range(1,i+1):
print(myfunc(i,j),end=" ")
print()
请输入杨辉三角形的行数:10
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
1 9 36 84 126 126 84 36 9 1
3、年龄问题
问题描述:
有5个人坐在一起,问第 5 个人多少岁,他说比第 4 个人大 2 岁,问第 4 个人,他说比第 3 个人大两岁,依次类推,第一个人是10岁,问第五个人多少岁
代码实现:
def myfunc(n):
if n==1:
return 10
else:
z = myfunc(n-1)+2
return z
n = int(input("共有人数:"))
print(myfunc(n))
共有人数:5
18
4、分🐟问题
问题描述:
A,B,C,D,E 5个人合伙捕鱼,A将🐟平分5份,把多余的一条扔回河中,B将剩下的🐟平分5份,再将多余的一条仍会河中,然后依次同样的方法,问每个人醒来看到的是多少条鱼。
算法设计:
由于每个人都是将🐟5等份再扔掉一条,因此每一次分的🐟都是 (x-1)/5,那么剩下的就是 4(x-1)/5,而对于这两个数都是整数
fish[1] = 全部的🐟
fish[2] = 4 * (fish[1]-1) // 5
fish[3] = 4 * (fish[2]-1) // 5
...
即fish[n] = 4*(fish[n-1]-1) // 5
代码实现:
def fish(n,z):
if (z-1)%5==0:
if n==1:
return 1
else:
return fish(n-1,(z-1)/5*4)
return 0
i = 0
while True:
i+=1
x=i*5+1
if (fish(5,x)):
print(x)
break
3121
5、逆序输出数字
问题描述:
编程实现输入的数字逆序输出
代码设计:
def reverse(n):
if n!=0:
print(n%10,end='')
reverse(n//10)
num = int(input("请输入一个整数: "))
reverse(num)
请输入一个整数: 123456789
987654321
6、逆序输出字符串
代码设计: 文章来源地址https://www.toymoban.com/news/detail-448960.html
def rvstr(s):
if len(s)<=1:
return s
else:
return rvstr(s[1:]) +s[0] #切片
str = str(input("请输入字符串: "))
print(rvstr(str))
请输入字符串: abcdefg
gfedcba
7、汉诺塔
问题描述:
文章来源:https://www.toymoban.com/news/detail-448960.html
代码设计:
def hanoi(n, x, y, z):
if n == 1:
print(x, '-->', z) # 如果只有 1 层,直接将金片从 x 移动到 z
else:
hanoi(n-1, x, z, y) # 将 x 上的 n-1 个金片移动到 y
print(x, '-->', z) # 将最底下的金片从 x 移动到 z
hanoi(n-1, y, x, z) # 将 y 上的 n-1 个金片移动到 z
n = int(input('请输入汉诺塔的层数:'))
hanoi(n, 'A', 'B', 'C')
到了这里,关于python案例——函数递归案例的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!