站長在線經(jīng)典Python題:使用Python編程思想解決雞兔同籠的問題的4種方法
歡迎你來到站長在線的Python題庫,雞兔寫完Python教程以后,還是來一個Python的題目吧!想來想去,還是寫一個經(jīng)典的題目為好,作為本欄目的第一個題目。我就想到了比較熱門的題目《雞兔同籠的問題》,本文不是用數(shù)學的方法,而是用Python編程的方法解決雞兔同籠的問題。用的就是《Python中的三大程序結構》: 順序結構、選擇結構和循環(huán)結構。解決問題具體的方法就是;順序語句假設法、選擇語句判定法、while循環(huán)語句遍歷法、for循環(huán)語句遍歷法。下面我來一一解答:
永久美國免備案虛擬主機1元1天,15元1月,100元1年,1000元永久
站長在線旗下答案網(wǎng)站,全站所有題目,免費查看答案和答案解析
歡迎你來到站長在線的python題庫,雞兔寫完Python教程以后,還是來一個Python的題目吧!想來想去,還是寫一個經(jīng)典的題目為好,作為本欄目的第一個題目。我就想到了比較熱門的題目《雞兔同籠的問題》,本文不是用數(shù)學的方法,而是用Python編程的方法解決雞兔同籠的問題。解決問題具體的方法就是:順序語句假設法、選擇語句判定法、while循環(huán)語句遍歷法、for循環(huán)語句遍歷法。下面我來一一解答:
題目:有一些雞和兔子關在一個籠子里面,從上面數(shù),一共有10個頭;從下面數(shù),一共有36只腳。問:籠中有多少只雞和兔?
這里寫Python代碼的時候,涉及到幾個詞語的英語單詞,英語好的,就用英語,和我一樣英語差的就寫拼音,效果是一樣的。(當然使用中文漢字也是可以的,但是不建議使用中文漢字。)
雞:ji、chick
兔:tu、rabbit
頭:tou、head
腳:jiao、foot
雞腳:ji_jiao、chick_foot
兔腳:tu_jiao、rabbit_foot
接下來,用編程的思想,把題目已知條件,或者隱藏的條件,轉換成變量,輸入到Python里面。
1、順序語句假設法
解題思路和編程流程:
雞和兔的數(shù)量是10
雞腳和兔腳的數(shù)量是36
全部是雞時(即兔抬起兩只腳時,視為雞),腳的數(shù)量是10*2=20
總腳減去雞的腳,剩余腳的數(shù)量就是兔的腳,剩余36-20=16只腳,這抬起來的16只腳全部是兔子的
每只兔子都是抬起了2只腳,這抬起來的16只腳,其實就是16/2=8只兔子
因為兔是8只,雞就是10-8=2只
輸出雞和兔的數(shù)量
使用idle中文版新建文檔的名稱為:雞兔同籠.py,寫入以下代碼:
tou = 10 # 雞頭和兔頭一共10只
jiao = 36 # 雞腳和兔腳一共36只
ji_jiao = tou*2 # 全部為雞時(即兔抬起兩只腳時,視為雞),雞的腳是頭的兩倍
tu_jiao = jiao - ji_jiao # 抬起來的兩只腳就是兔子的腳
tu = tu_jiao // 2 # 兔等于抬起來的兩只腳的一半,這里用//(整除)而不是/(除)
ji = tou - tu # 雞的數(shù)量是總數(shù)減去兔的數(shù)量
print('雞的數(shù)量',ji) # 輸出雞的數(shù)量
print('兔的數(shù)量',tu) # 輸出兔的數(shù)量
運行結果為:
雞的數(shù)量 2
兔的數(shù)量 8
>>>
2、選擇語句判定法
ji =int(input('請輸入一個1至10數(shù)值的整數(shù)'))
tu = 10 - ji
if (2*ji+4*(10-ji)==36) and (ji + tu == 10):
print("雞:",ji,"兔:",tu) # 輸出雞和兔的數(shù)量
運行結果:
輸入的值是1的時候,不符合條件,沒有顯示:
請輸入一個1至10數(shù)值的整數(shù)1
>>>
當輸入的值是2的時候,符合條件,顯示結果:
請輸入一個1至10數(shù)值的整數(shù)2
雞: 2 兔: 8
>>>
當然,這里總共才10,最多輸入10次,就滿足條件了,要是很大的數(shù)值的話,目前的方法還是不行的,可以使用下面的while循環(huán)和for循環(huán)。
3、while循環(huán)語句遍歷法
ji = 0
tu = 0
while ji <= 10 and tu <= 10:
if ji + tu == 10:
print("雞%d只,有兔%d"%(ji,tu))
if 2*ji + 4 * tu == 36:
print("有雞%d只,有兔%d只"%(ji,tu))
break
ji += 1
tu = 10 - ji
運行結果為:
雞1只,有兔9
雞2只,有兔8
有雞2只,有兔8只
>>>
4、for循環(huán)語句遍歷法
for ji in range(0,10): # 雞的數(shù)量從1開始循環(huán)到10
if 2*ji+4*(10-ji)==36: # 2倍雞的腳+4倍兔的腳是36
print("雞:",ji,"兔:",10-ji) # 輸出雞和兔的數(shù)量
運行結果為:
雞: 2 兔: 8
>>>
到此為止,本文的《雞兔同籠的問題》解決問題具體的方法就是:順序語句假設法、選擇語句判定法、while循環(huán)語句遍歷法、for循環(huán)語句遍歷法。已經(jīng)講解完畢了,有問題可以給我留言哦!
本文地址:http://003188.cn/pythonjitutonglong.html
阿里云虛擬主機1G空間,120元一年
香港、美國虛擬主機100元一年,1000元永久
騰訊云雙十一0.4折起,2核8G5M三年僅700元,2核4G8M三年僅198元
猜你喜歡