題目:
某頁紙上有一個(gè)數(shù)列A,A包含了按照從小到大的順序排列的多個(gè)自然數(shù),但是因?yàn)橐恍┰颍渲杏蠱個(gè)連續(xù)的位置看不清了。這M個(gè)數(shù)左邊最小的數(shù)是X,右邊最大的數(shù)是Y,這些數(shù)之和大于等于P且小于等于Q。
#請寫程序,在輸入M,X,Y,P,Q后自動(dòng)給出所有可能的合法排列
from itertools import combinations####第一步,題目給的數(shù)據(jù)輸入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])### 第二步 構(gòu)建數(shù)組,將x到y(tǒng)中的所有數(shù)構(gòu)建成列表L=[]for t in range(x+1,y): L.append(t)###L就是我們想要的列表###下面這行代碼就是獲取m個(gè)數(shù)的全部可能情況result=list(combinations(L,m))###最后對這些結(jié)果進(jìn)行判斷:看看它們的和是否在p q 之間,# 若在,直接輸出;不在則直接忽略for i in result: k=sum(i) if k in range(p,q+1): print(i)##這是一組測試數(shù)據(jù):3 1 9 10 15
以上這篇python實(shí)現(xiàn)n個(gè)數(shù)中選出m個(gè)數(shù)的方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持武林站長站。
|
新聞熱點(diǎn)
疑難解答
圖片精選