分支和循环结构的应用(习题)
目錄
1、尋找水仙花數
?2、將12345變成54321
?3、百錢百雞問題
?4、CRAPS賭博游戲
?5、斐波那契數列
6、打印100以內的素數
1、尋找水仙花數
說明:水仙花數也被稱為超完全數字不變數、自戀數、自冪數、阿姆斯特朗數,它是一個3位數,該數字每個位上數字的立方之和正好等于它本身,例如:$ 153=1^3+5^3+3^3 $。
這個題目的關鍵是將一個三位數拆分為個位、十位、百位,這一點利用Python中的//(整除)和%(求模)運算符其實很容易做到,代碼如下所示。
s = 0 num = int(input('請輸入一個三位數:')) x = num while x > 0:a = x % 10s += (a**3)x //= 10 if (s == num):print('是水仙花數') else:print('不是水仙花數')?
?2、將12345變成54321
代碼如下所示:
s = 0 num = (input('請輸入一個數:')) x = int(num) i = len(num) - 1 while x > 0:a = x % 10s += (a*10**i)i -= 1x //= 10 print(s)?3、百錢百雞問題
說明:百錢百雞是我國古代數學家張丘建在《算經》一書中提出的數學問題:雞翁一值錢五,雞母一值錢三,雞雛三值錢一。百錢買百雞,問雞翁、雞母、雞雛各幾何?翻譯成現代文是:公雞5元一只,母雞3元一只,小雞1元三只,用100塊錢買一百只雞,問公雞、母雞、小雞各有多少只?
for i in range(0,20):for j in range(0,33):z = 100 - i - jif z % 3 == 0:if (i * 5 + j * 3 + z // 3 == 100):print('母雞:%d,公雞:%d,小雞:%d' % (i,j,z))break上面使用的方法叫做窮舉法,也稱為暴力搜索法,這種方法通過一項一項的列舉備選解決方案中所有可能的候選項并檢查每個候選項是否符合問題的描述,最終得到問題的解。這種方法看起來比較笨拙,但對于運算能力非常強大的計算機來說,通常都是一個可行的甚至是不錯的選擇,只要問題的解存在就能夠找到它。
?4、CRAPS賭博游戲
說明:CRAPS又稱花旗骰,是美國拉斯維加斯非常受歡迎的一種的桌上賭博游戲。該游戲使用兩粒骰子,玩家通過搖兩粒骰子獲得點數進行游戲。簡化后的規則是:玩家第一次搖骰子如果搖出了7點或11點,玩家勝;玩家第一次如果搖出2點、3點或12點,莊家勝;玩家如果搖出其他點數則玩家繼續搖骰子,如果玩家搖出了7點,莊家勝;如果玩家搖出了第一次搖的點數,玩家勝;其他點數玩家繼續搖骰子,直到分出勝負。
count = 1 while 1:num = int(input('請輸入骰子的點數:'))if (count <= 1):s = numif (num == 7 or num == 11):print('恭喜你,贏了')breakif (num == 2 or num == 3 or num == 12):print('不好意思,你輸了')breakelse:if (num == 7):print('不好意思,你輸了')breakif (num == s):print('恭喜你,贏了')breakcount +=1?5、斐波那契數列
說明:斐波那契數列(Fibonacci sequence),通常也被稱作黃金分割數列,是意大利數學家萊昂納多·斐波那契(Leonardoda Fibonacci)在《計算之書》中研究在理想假設條件下兔子成長率問題而引入的數列,因此這個數列也常被戲稱為“兔子數列”。斐波那契數列的特點是數列的前兩個數都是1,從第三個數開始,每個數都是它前面兩個數的和,按照這個規律,斐波那契數列的前10個數是:1, 1, 2, 3, 5, 8, 13, 21, 34, 55。斐波那契數列在現代物理、準晶體結構、化學等領域都有直接的應用。
n = int(input('請輸入一個數:')) a,b = 0,1 for i in range(n):a,b=b,a+bprint(a,end='\t')?
6、打印100以內的素數
說明:素數指的是只能被1和自身整除的正整數(不包括1)。
for i in range(1,100):count = 0for j in range(1,i):if (i == 1):print(1)if (i % j == 0):count +=1if (count <= 1):print(i)?
總結
以上是生活随笔為你收集整理的分支和循环结构的应用(习题)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeedCode刷题
- 下一篇: mysql 最大并发连接数