天天看點

分支循環練習題

經典例題

例子1:尋找水仙花數。

說明:水仙花數也被稱為超完全數字不變數、自戀數、自幂數、阿姆斯特朗數,它是一個3位數,該數字每個位上數字的立方之和正好等于它本身,例如:13 + 53 + 33 = 153。
小拓展: 數字翻轉

說明:使用者輸入一個正整數,寫個程式将其按位翻轉并輸出結果。

注意:不能使用字元翻轉方法,要求把使用者輸入的内容轉換成整數進行操作

例子2:尋找一萬内的完美數。

說明:完全數(Perfect number),又稱完美數或完備數,是一些特殊的自然數。它所有的真因子(即除了自身以外的約數)的和(即因子函數),恰好等于它本身。

如果一個數恰好等于它的真因子之和,則稱該數為“完美數”。

例子3:求Cm^n

說明:也就是組合數,可以預設認為m>n, Cm^n= m!/n!/(m-n)!

tips:階乘的求法函數可以自己寫(建議自己先寫一個試試再嘗試使用子產品内寫好的),也可以導入math子產品中的factorial函數

tips:python中有許多有用的子產品,math是其中比較常用的一種,包括許多數學方面有用的東西。

子產品導入可以使用import 指令加子產品名字導入,使用子產品内成員需要在前面加 子產品名.

如果不想每次使用都加這個,可以使用 from 子產品名 import 想要的參數或函數名,這樣就可以直接用函數名調用,不過這樣調用每次就隻能引入子產品中的一個内容。

還可以使用 原名 as 想要的名字 指令(可以直接跟在導入指令的後面)給導入的子產品或函數起别名,使得調用更加友善。

例子4:判斷質數

說明:質數也就是除了1和本身外沒有其他因子的數,請寫個代碼讓使用者輸入一個數後判斷這個數是否是質數,并給出判斷結果

優化拓展:質數的尋找優化,如果使用逐個比對的方法尋找因子,想想最少尋找到多少就可以确定一個數沒有質數了呢?

隻要找到這個數的開根号後向下取整的那個數如果還沒有找到因子的話,就可以确定這個數是質數。

小拓展1:輸出100範圍内的所有質數

拓展2:嘗試把這個程式改成一個函數,然後用其他程式調用這個函數實作原題目的,還可以再實作拓展1

tips: def 函數名(參數): 是一個函數一般的開頭,函數體也是用縮進表示,return 傳回值

可以結束函數并傳回傳回值

例子5:三角形判斷

說明:使用者輸入三角形三條邊,判斷三條邊能否構成三角形,如果可以,給出提示并輸出三角形周長與面積,如果不能,給出提示并讓使用者重新輸入三邊,直到可以構成三角形為止。

tips:三角形面積計算可以考慮直接使用海倫公式計算,也可以使用邊角關系求角度,然後轉化出一個高後計算。

例子6:數字矩陣

說明:使用者輸入一個正整數n,輸出一個n行n列矩陣,第i行都是i(0<i<=n);再輸出一個第i行隻有i列的數字矩陣。
小拓展:輸出一個99乘法口訣表

例子7:斐波那契數列

說明:斐波那契數列(Fibonacci sequence),通常也被稱作黃金分割數列,是意大利數學家萊昂納多·斐波那契(Leonardoda Fibonacci)在《計算之書》中研究在理想假設條件下兔子成長率問題而引入的數列,是以這個數列也常被戲稱為“兔子數列”。斐波那契數列的特點是數列的前兩個數都是1,從第三個數開始,每個數都是它前面兩個數的和,按照這個規律,斐波那契數列的前10個數是:

1, 1, 2, 3, 5, 8, 13, 21, 34, 55

。斐波那契數列在現代實體、準晶體結構、化學等領域都有直接的應用。

使用者輸入想要幾個斐波那契數,就輸出幾個斐波那契數

例子8:百錢百雞問題

說明:百錢百雞是我國古代數學家張丘建在《算經》一書中提出的數學問題:雞翁一值錢五,雞母一值錢三,雞雛三值錢一。百錢買百雞,問雞翁、雞母、雞雛各幾何?翻譯成現代文是:公雞5元一隻,母雞3元一隻,小雞1元三隻,用100塊錢買一百隻雞,問公雞、母雞、小雞各有多少隻?

例子9:CRAPS賭博遊戲

說明:CRAPS又稱花旗骰,是美國拉斯維加斯非常受歡迎的一種的桌上賭博遊戲。該遊戲使用兩粒骰子,玩家通過搖兩粒骰子獲得點數進行遊戲。簡化後的規則是:玩家第一次搖骰子如果搖出了7點或11點,玩家勝;玩家第一次如果搖出2點、3點或12點,莊家勝;玩家如果搖出其他點數則玩家繼續搖骰子,如果玩家搖出了7點,莊家勝;如果玩家搖出了第一次搖的點數,玩家勝;其他點數玩家繼續搖骰子,直到分出勝負。

注意:這隻是作為編寫程式的練習,無任何宣傳賭博的意思 [doge]

例子10:猜數字遊戲

說明:系統生成一個100内的随機數,使用者進行猜測,每猜一次給出提示大或小了,直到猜對為止。

tips:可以使用random子產品中的randint或者randrange函數生成随機數。

拓展:嘗試自輸入1-100的數,讓機器來猜,每次由你給出提示是大了還是小了還是猜中了。

例子11:分魚

說明:有一堆不知數量的魚是屬于5個人的,五個人依次來分魚,五個人都丢了一條魚後取走了恰好1/5條魚,問這堆魚原本至少多少條。

例子12:獲得平均值,最大值與最小值

說明:讓使用者輸入10個正整數,輸出它們的平均值,最大值與最小值