100個不同型別的python語言趣味編程題
在求解的程序中培養編程興趣,拓展編程思維,提高編程能力,
第一部分:趣味演算法入門;第二題
'''
2.借書方案:5本新書,借給A、B、C3人,每人每次只能借一本,則有多少種借法
'''
#解題方法示例如下;
import time #匯入time模塊,以用來計算程式運行的時間,可忽視
time.perf_counter() #與time模塊中計算時間有關,可忽視
#主體代碼塊如下:
n=0 #定義初始借書方法為n
for A in range(1,6):
for B in range(1,6):
if A!=B:
for C in range(1,6):
if A!=C and B!=C:
n+=1
print(n)
print(time.perf_counter()) #列印出程式運行的時間,可忽視
#解本問題有多種方法,我只寫了一種方法,讀者可以自己嘗試各種方法,再用time模塊計算每種方法的運行時間,
補充:
? 問題分析: 本題屬于數學當中常見的排列組合問題,即求從5個數中取3個不同數的排列組合的總數, 我們可以將 5 本書進行 1~ 5 的編號, A、 B、 C 3 個人每次都可以從5本書中任選l 本, 即每人都有5種選擇, 由于1本書不可能同時借給一個以上的人, 因此只要這3個人所選書的編號不同, 即為一次有效的借閱方法,
? 演算法設計:對千每個人所選書號,我們可以采用窮舉回圈來實作,即從每個人可選書號(1、2、
3、4、5)的范圍內進行窮舉,從而得到可行的結果,對第每個人的選擇,我們可以用回圈將其列出,
? 由于一本書只能借一個人,所以第2個人的選擇會受到第1個人的限制,最后一個人的選擇會受到第2個人的限制,即后面的選擇都是在前面選擇的前提下進行的,所以可采用回圈的嵌套來解決問題,利用回圈解決問題的時候,找到回圈的三要素:回圈變數的初值、回圈的控制條件,以及使回圈趨于結束的回圈變數值的改變是進行編程的關鍵,
如果你喜歡我的文章,請滑到下方點個推薦再走. 以給我動力哦;轉載請注名出處,然后..請多來做客鴨,
注:100個不同型別的python語言趣味編程題是參考100個不同型別的c語言趣味編程題而寫,陸續會更新,歡迎大家分享出你們的方案,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/177775.html
標籤:Python
上一篇:學習筆記—Python運算子分類
下一篇:Python的主要功能是什么?
