第10天還沒吃,就剩1個,說明第9天吃完一半再吃1個還剩1個,假設(shè)第9天還沒吃之前有桃子x個,可得:x* 1/2 - 1 = 1,可得 x= 4。以此類推,即可手算出。
代碼思路為:
第10天還沒吃之前的桃子數(shù)量初始化 x= 1,之后9至1循環(huán)9次,根據(jù)上述內(nèi)容
反推為 x= (x+1) * 2 可得第1天還沒吃之前的桃子數(shù)量。
第一種方法:for循環(huán)
#for循環(huán)
x= 1
print('第10天吃之前就剩1個桃子')
for i in range(9, 0, -1):
x= (x+1) * 2
print('第%d天吃之前還有%d個桃子' % (i, x))
print('第1天共摘了%d個桃子' % x)
結(jié)果:
?for循環(huán)中的print()語句是為了驗證推算過程而增加的
第二種方法:while循環(huán)
設(shè)天數(shù)為n
設(shè)桃子數(shù)量為num
#while
def chitaozi(n,num):
while(n>=2):
num=2*(num+1)
n=n-1
print("第",n," 天桃子數(shù)為: ",num)
n = 10
num = 1
print("第",n," 天桃子數(shù)為: ",num)
chitaozi(n,num)
效果:
??while循環(huán)中的print()語句也是為了驗證推算過程而增加的
第三種方法:遞歸
#遞歸
def chitaozi(n):
if n == 1:
return 1
else:
return (chitaozi(n-1)+1) * 2
num = chitaozi(10)
print("第一天共摘了%d個桃子" % num)
效果:
?稍微吐槽一下哈
猴子你真能吃啊?。。?534個?。。∧阏Σ粨巫呖??文章來源:http://www.zghlxwxcb.cn/news/detail-742429.html
十天干掉1533個桃子,這是要上天噻?。?!文章來源地址http://www.zghlxwxcb.cn/news/detail-742429.html
到了這里,關(guān)于python-10.猴子吃桃問題:猴子第一天摘下若干個桃子,當即吃了一半,還不過癮,又多吃了一個,第二早上將剩下的桃子吃掉一半,又多吃一個。以后每天早上都吃前一天剩下的一半再加一個。的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!