【基础入门题】2021.11.20
猴子第一天摘了若干个桃子,当即吃了一半,还不解馋,又多吃了一个;第二天,吃剩下的桃子的一半,还不过瘾,又多吃了一个;以后每天都吃前一天剩下的一半多一个,到第10天想再吃时,只剩下一个桃子了。问第一天共摘了多少个桃子?
编程语言:包括但不限于Python
题目来源:派森特给站每日刷题频道
简单,一个循环解决,前九天只要循环9次:
n = 1 for i in range(1,10): n = 2*(n+1) print(n) # 1534
上述代码中循环变量 i 在循环体没有使用到,python对于这种情况循环变量可以用“_”下划线代替:
1. n = 1 2. for _ in range(9): 3. n = 2*(n+1) 4. print(n)
或者用while循环:
1. n,i = 1,0 2. while i<9: 3. i += 1 4. n = 2*(n+1) 5. 6. print(n)
递归法:
1. def Peach(n): 2. if n==1: 3. return 1 4. else: 5. return 2*(Peach(n-1)+1)
或写成二行:
1. def Peach(n): 2. if n==1: return 1 3. return 2*(Peach(n-1)+1)
lambda函数:
Peach = lambda n: 1 if n==1 else 2*(Peach(n-1)+1)
倒推的递归法:
def peach(n): if n==10: return 1 else: return 2*(peach(n+1)+1) for i in range(10,0,-1): print("第{}天有{}只桃子".format(i,peach(i))) ''' 执行结果: 第10天有1只桃子 第9天有4只桃子 第8天有10只桃子 第7天有22只桃子 第6天有46只桃子 第5天有94只桃子 第4天有190只桃子 第3天有382只桃子 第2天有766只桃子 第1天有1534只桃子 '''