給定n個(gè)正整數(shù),將它們分組,使得每組中的任意兩個(gè)數(shù)互質(zhì)(它們的最大公約數(shù)為1)。按照以下算法可以得到最少的組數(shù):
第一步:將第1個(gè)整數(shù)分到第1組;
第二步:嘗試將第2個(gè)至第n個(gè)整數(shù)分到已有的分組中,若能分到已有的分組中,則分到第一個(gè)符合條件的組;若不能分到已有的組,則分到新生成的組中。
例如對(duì)“70,99,25,54,11,100”6個(gè)整數(shù)分組,具體分組情況如下表所示a
組別 | 第1組 | |||||||
位置 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | |
值 | 2 | 70 | 99 | 0 | 0 | 0 | 0 | |
組別 | 第2組 | |||||||
位置 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | ... |
值 | 3 | 25 | 54 | 11 | 0 | 0 | 0 | ... |
分組數(shù)據(jù):70,99,25,54,11,100
分組情況:
第1組:70 99
第2組:25 54 11
第3組:100
至少分:3組
實(shí)現(xiàn)上述功能的程序如下,請(qǐng)回答下列問題:
n=6
global a,b#定義a,b為全局變量
def gcd(num1,num2):
#求整數(shù)num1、num2的公約數(shù),代碼略
def dist(x,m):#把整數(shù)x進(jìn)行分組
dist=0
flag=False
For i in range(1,m+1):
flagp=True
②
for j in range(1,b[t]+1):
if gcd(x,b[t+j])>1:
flagp=False
break
if flagp==True:
b[t]+=1
b[t+b[t]]=x
flag=True
break
if flag==False:
t=m*(n+1)
b[t]+=1
③
dist=1
return dist
#輸入n個(gè)整數(shù),并存儲(chǔ)在列表a中,代碼略
b=[0]*(n*(n+1))#數(shù)組b分為n段,并將元素初始化為0
b[0]=1
b[1]=a[0]
cnt=1
s=””
For i in range(1,n):
cnt= ①
#輸出具體分組情況,代碼略
print(“至少分:”,str(cnt),”組”)
(1)按照上述算法,若有“25,15,18,22,51,33,7,62”8個(gè)整數(shù),至少分組數(shù)為
(2)請(qǐng)?jiān)跈M線處填入合適的代碼。
【考點(diǎn)】設(shè)計(jì)應(yīng)用程序的界面.
【答案】見試題解答內(nèi)容
【解答】
【點(diǎn)評(píng)】
聲明:本試題解析著作權(quán)屬菁優(yōu)網(wǎng)所有,未經(jīng)書面同意,不得復(fù)制發(fā)布。
發(fā)布:2024/6/27 10:35:59組卷:0引用:1難度:0.3
相似題
-
1.設(shè)某銀行有A,B兩個(gè)業(yè)務(wù)窗口,且處理業(yè)務(wù)的速度不一樣,其中A窗口處理速度是B窗口的2倍,即A窗口每處理完2個(gè)顧客,B窗口處理完1個(gè)顧客。給定到達(dá)銀行的顧客序列,請(qǐng)按業(yè)務(wù)完成的順序輸出顧客序列。假設(shè)不考慮顧客先后到達(dá)的時(shí)間間隔,并且當(dāng)不同窗口同時(shí)處理完2個(gè)顧客時(shí),A窗口顧客優(yōu)先輸出。輸入第一個(gè)數(shù)字是顧客總?cè)藬?shù),后面是n位顧客的編號(hào),編號(hào)為奇數(shù)的顧客需要到A窗口處理,為偶數(shù)的顧客則需要去B窗口處理。輸出為按業(yè)務(wù)處理完成的順序輸出顧客的編號(hào)(數(shù)字間以空格分隔,但最后一個(gè)編號(hào)之后不能有空格)。
例如輸入:8 2 1 3 9 4 11 13 15 輸出為1 3 2 9 11 4 13 15
請(qǐng)完善程序代碼:發(fā)布:2024/6/27 10:35:59組卷:0引用:1難度:0.3 -
2.一個(gè)Pyhton程序的運(yùn)行界面如下圖所示,下列說法正確的是( ?。?br />①窗體內(nèi)有1個(gè)按鈕
②窗體內(nèi)有2個(gè)按鈕
③窗體內(nèi)有3個(gè)標(biāo)簽
④該窗體的標(biāo)題可以通過title( ?。┓椒ㄔO(shè)置為“加法計(jì)算器”發(fā)布:2024/11/1 21:0:1組卷:1引用:3難度:0.6 -
3.某閱卷系統(tǒng)設(shè)計(jì)如下:
讀取學(xué)生答案文件后和標(biāo)準(zhǔn)答案進(jìn)行對(duì)照并判分,題型分為單選、多選和填空。
單選閱卷規(guī)則:和標(biāo)準(zhǔn)答案一致得全部分?jǐn)?shù),錯(cuò)選或不選不給分。
多選閱卷規(guī)則:和標(biāo)準(zhǔn)答案一致得全部分?jǐn)?shù),漏選給一半分?jǐn)?shù),錯(cuò)選或不選不給分。
填空閱卷規(guī)則:標(biāo)準(zhǔn)答案表中允許有多種答案存在。學(xué)生的答案在標(biāo)準(zhǔn)答案中存在,得全部分?jǐn)?shù),不存在或未填不給分。
例如“學(xué)生答案.txt”內(nèi)容如下:
張三|A|D|AC|AD|字符串|
李四|A|D|ACD|A|string|i>=0
標(biāo)準(zhǔn)答案:
程序執(zhí)行結(jié)果:
張三成績(jī):9分
李四成績(jī):11分
(1)如果學(xué)生的答案數(shù)據(jù)為‘王五|A|C|AD|ACD|string|i=0’,則輸出的結(jié)果是
(2)請(qǐng)?jiān)跈M線處填入合適的代碼。發(fā)布:2024/6/27 10:35:59組卷:0引用:1難度:0.3
把好題分享給你的好友吧~~