題目:
某頁紙上有一個數列A,A包含了按照從小到大的順序排列的多個自然數,但是因為一些原因,其中有M個連續的位置看不清了。這M個數左邊最小的數是X,右邊最大的數是Y,這些數之和大于等于P且小于等于Q。
#請寫程序,在輸入M,X,Y,P,Q后自動給出所有可能的合法排列
from itertools import combinations####第一步,題目給的數據輸入str=input()m=int(str.split()[0])x=int(str.split()[1])y=int(str.split()[2])p=int(str.split()[3])q=int(str.split()[4])### 第二步 構建數組,將x到y中的所有數構建成列表L=[]for t in range(x+1,y): L.append(t)###L就是我們想要的列表###下面這行代碼就是獲取m個數的全部可能情況result=list(combinations(L,m))###最后對這些結果進行判斷:看看它們的和是否在p q 之間,# 若在,直接輸出;不在則直接忽略for i in result: k=sum(i) if k in range(p,q+1): print(i)##這是一組測試數據:3 1 9 10 15
以上這篇python實現n個數中選出m個數的方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林站長站。
新聞熱點
疑難解答