【基础入门题024】猴子吃桃问题

简介: 【基础入门题024】猴子吃桃问题

【基础入门题】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只桃子
'''




目录
相关文章
|
6天前
47: 猴子吃桃
47: 猴子吃桃
|
1天前
57.猴子吃桃问题
57.猴子吃桃问题
5 0
|
6天前
|
C语言
【汇编语言实战】猴子吃桃
【汇编语言实战】猴子吃桃
9 0
【汇编语言实战】猴子吃桃
|
6天前
|
C语言
c语言编程练习题:7-35 猴子吃桃问题
c语言编程练习题:7-35 猴子吃桃问题
23 0
|
6天前
猴子分桃
猴子分桃。
26 1
|
10月前
1418:猴子选大王
1418:猴子选大王
|
6月前
猴子吃桃问题
猴子吃桃问题。
25 2
|
11月前
【每日一道智力题】之猴子搬香蕉
【每日一道智力题】之猴子搬香蕉
208 0
|
12月前
猴子选大王
猴子选大王
83 0
每日一题---蓝桥杯猴子吃包子问题Java解决
每日一题---蓝桥杯猴子吃包子问题Java解决