韓信點(diǎn)兵問題,雞兔同籠問題,閏年判斷問題,我用Python瞬間搞定(13)
小朋友們好,大朋友們好!
我是貓妹,一名愛上Python編程的小學(xué)生。
歡迎和貓妹一起,趣味學(xué)Python。
今日主題
最近貓妹一直在練習(xí)Python編程,有些習(xí)題真是經(jīng)典?。?/p>
比如韓信點(diǎn)兵問題,比如雞兔同籠問題等。
這些問題,第一次遇到,真是沒有思路,懂了之后,真是有趣啊!
這里貓妹簡(jiǎn)單記錄下,便于以后回看。
什么是舉一反三呢?
學(xué)習(xí)掌握一個(gè)類型的題目后,類似問題也都迎刃而解、不在話下。

韓信點(diǎn)兵問題
小朋友,你聽過韓信嗎?
韓信,漢初三杰,漢初著名的軍事家,被后人奉為“兵仙”、“神帥”。
我們現(xiàn)在常用的很多成語,很多都和韓信有關(guān)系。
比如胯下之辱、一飯千金、國(guó)士無雙、明修棧道暗渡陳倉(cāng)
比如背水一戰(zhàn)、獨(dú)當(dāng)一面、十面埋伏、成也蕭何敗也蕭何
比如功高震主、推陳出新、金石之交、置之死地而后生
我們今天不聊歷史,我們今天也不聊語文,我們今天聊聊韓信點(diǎn)兵問題。

題目是這樣的:
一次,韓信大將軍派出1000士兵打仗,韓信用用兵如神,把敵人全部殲滅,得勝回營(yíng),清點(diǎn)所剩士兵。
據(jù)初步估計(jì)戰(zhàn)死的士兵在200—300之間,韓信命令士兵排隊(duì),3人一排,剩2人;5人一排剩3人;7人一排剩2人,韓信就知道具體士兵人數(shù)。
我們理解下題目,韓信派出1000士兵打仗,預(yù)估陣亡200~300之間,也就是會(huì)所有700~800士兵還活著,具體有多少呢?
假設(shè)還有活著的士兵人數(shù)為x,那么x除以3,余數(shù)為2,x除以5,余數(shù)為3,x除以7,余數(shù)為2。
我們要知道,計(jì)算機(jī)計(jì)算速度是非??斓?,像這樣問題,直接讓計(jì)算機(jī)從700~800逐一檢查就可以了,幾秒之內(nèi)搞定。
前提是,你把正確的指令告訴計(jì)算機(jī)。

第3行語句為控制邏輯,從700~800,逐一檢查。
第4行語句為判斷邏輯,3人一排余2人;5人一排余3人;7人一排余2人的程序表達(dá)。
第5行語句,當(dāng)滿足條件時(shí),將結(jié)果打印出來。
雞兔同籠問題
大約在1500年前,《孫子算經(jīng)》中就記載了這個(gè)有趣的問題:
“今有雉兔同籠,上有三十五頭,下有九十四足,問雉兔各幾何?”

我們按照韓信點(diǎn)兵的思路,外面循環(huán)里面判斷,符合結(jié)果打印出來。

今有物不知幾何
《孫子算經(jīng)》中還記載了這樣一個(gè)問題:
“今有物不知其數(shù),三三數(shù)之剩二;五五數(shù)之剩三,七七數(shù)之剩二;問物幾何?”

假如100之內(nèi),哪些數(shù)符合上述條件呢?

閏年計(jì)算
小朋友,你知道什么是閏年嗎?
1582年以來公歷的置閏規(guī)則:
普通閏年:公歷年份是4的倍數(shù),且不是100的倍數(shù)的,為閏年(如2004年、2020年等就是閏年)。
世紀(jì)閏年:公歷年份是整百數(shù)的,必須是400的倍數(shù)才是閏年(如1900年不是閏年,2000年是閏年)。
你能輸出2000年到2500年之間的所有閏年年份嗎?
我們理解下,可以被400整除的是閏年(世紀(jì)閏年),另外可以被4整除但不可以被100整除的也是閏年(普通閏年)。

三角形
我們生活中有很多三角形,你身邊有三角形物體嗎?

三角形有三個(gè)邊,有三個(gè)角。
三條邊必須滿足,任意兩條邊大于第三條邊。
題目來了:任意輸入三個(gè)整數(shù),請(qǐng)判斷,這三條邊是否可以構(gòu)成三角形。

勾股定理
三角形中,如果有一個(gè)角為直角,那么這個(gè)三角形為直角三角形。
勾股定理:在任何一個(gè)平面直角三角形中的兩直角邊的平方之和一定等于斜邊的平方。

題目來了,任意輸入三個(gè)整數(shù),請(qǐng)判斷,這三條邊是否可以構(gòu)成直角三角形。

我們把上述三角形題目結(jié)合起來,任意輸入三條邊,請(qǐng)判斷是否可以構(gòu)成三角形,如果可以構(gòu)成三角形,請(qǐng)判斷是否可以構(gòu)成直角三角形。

最后再拋出個(gè)問題,100之內(nèi)的數(shù)字,都有哪些數(shù)字可以構(gòu)成直角三角形?

如果遇到什么問題,咱們多多交流,共同解決。
我是貓妹,咱們下次見!