"""
進德女子監獄座落於自由女中旁,是間作風開放的監獄,
每到中午時間便會放風讓收容人到外面用餐。
當然還是會有人逾時不歸,身為管理者的美惠,
每天總是要為哪些人沒有回來而傷透腦筋。
現在想請你寫一個程式,幫助美惠找出哪些人沒有回來。
輸入說明:
一開始有兩個正整數 N、M (0<=M<N<=20),
N 代表收容人的人數(編號從 1 到 N),
M 代表回來的人數,接下來有 M 個正整數,
分別代表這 M 位已經回來的收容人編號(不用考慮編號超出範圍或其他錯誤)。
輸出說明:
請將沒有回來的收容人編號從小到大輸出,兩個編號中間請空一格。
範例輸入:
輸入1:
4 3 1 2 3
輸入2:
5 3 5 3 1
範例輸出 :
輸出1:
4
輸出2:
2 4
"""
m=[]
M=1
N=0
while (N<M):
print("輸入兩個正整數 N、M (0<= M < N <=20)。")
print(" N、M 需以逗號隔開 > ",end="")
N ,M = map(int,input().split(','))
if (N<=M) :
print("錯誤輸入 需 N > M")
print("共有",M,"位收容人回來")
for i in range(1,M+1):
print("第",i,"位人員編號")
n = int(input('請輸入--> '))
m.append(n)
print("人員回來的順序",m)
P=[]
for i in range (1,N+1):
P.append(i)
print ("方法1: 回來的編號",[l for l in m if l in P])
set1 = set(m) #對2個set 取交集
set2 = set(P)
print ("方法2: 回來的編號", set1 & set2)
difference = list(set(m)^set(P))
print ("未回來的編號",difference)
========== RESTART: F:/Python_APSC/b004.py ======================
輸入兩個正整數 N、M (0<= M < N <=20)。
N、M 需以逗號隔開 > 9,5
共有 5 位收容人回來
第 1 位人員編號
請輸入--> 4
第 2 位人員編號
請輸入--> 5
第 3 位人員編號
請輸入--> 1
第 4 位人員編號
請輸入--> 2
第 5 位人員編號
請輸入--> 8
人員回來的順序 [4, 5, 1, 2, 8]
方法1: 回來的編號 [4, 5, 1, 2, 8]
方法2: 回來的編號 {8, 1, 2, 4, 5}
未回來的編號 [3, 6, 7, 9]
>>>
沒有留言:
張貼留言