2017年12月24日 星期日

b004: 一個都不能少

b004: 一個都不能少
"""
進德女子監獄座落於自由女中旁,是間作風開放的監獄,
每到中午時間便會放風讓收容人到外面用餐。
當然還是會有人逾時不歸,身為管理者的美惠,
每天總是要為哪些人沒有回來而傷透腦筋。
現在想請你寫一個程式,幫助美惠找出哪些人沒有回來。

輸入說明:
一開始有兩個正整數 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]
>>> 

沒有留言:

張貼留言

Messaging API作為替代方案

  LINE超好用功能要沒了!LINE Notify明年3月底終止服務,有什麼替代方案? LINE Notify將於2025年3月31日結束服務,官方建議改用Messaging API作為替代方案。 //CHANNEL_ACCESS_TOKEN = 'Messaging ...