追蹤者

2018年8月30日 星期四

Python 商管程設(一) 第二周作業

如果你在一家零售店幫消費的客人結帳,你可能需要快速地挑出合適且數量正確的鈔票與零錢。假設客人的消費金額 a 一定是 1 到 1000 之間的整數,而你有無限量的 500、100、50、10、5、1 這些面額的鈔票和零錢,我們希望你能依照下面的規則找錢:
  1. 你找的錢的總額要是 1000 - a
  2. 與其給客人五張 100 元,不如給他一張 500 元;與其給客人兩個 50 元,不如給他一張 100 元……依此類推。
以下是一些範例:
  1. 如果客人消費 200 元,你應該找給他 1 張 500 元和 3 張 100 元。
  2. 如果客人消費 286 元,你應該找給他 1 張 500 元、2 張 100 元、1 個 10 元和 4 個一元。
  3. 如果客人消費 925 元,你應該找給他 1 個 50 元、2 個 10 元和 1 個 5 元。
在本題中,你將會被給予上述的整數 a,而你要找出符合上述規則的唯一找錢方式。

輸入輸出格式

在每筆測試資料中,會有一個整數 a 代表客人的消費金額,a 會介於 1 到 1000 之間(包含 1 跟 1000)。讀入 a 之後,你會依照題目指定的規則找出每種面額的鈔票或銅板應該要給幾張或幾個,然後在一行中依序輸出六個整數,分別代表面額由大到小的鈔票或零錢所需的張數或個數。如果某種面額的鈔票或銅板是不需要的,針對該面額就輸出 0。兩個整數之間用一個空白字元隔開。請注意最後面一個數字後面沒有空格。
--------------------
注意: 空白字元隔開:
print(b, end=' ')
--------------------
# code

a = int(input())
p1 = int()
p2 = int()
p3 = int()
p4 = int()
p5 = int()
p6 = int()
o = 1000 - a
p6 = o%10
if(p6==0):
p5 = 0
elif(p6>=5):
p5 = 1
p6 = p6 - 5
else:
p6 = p6
p5 = 0

p4 = (o%100)
if(p4==0):
p3 = 0
elif(p4>=50):
p3 = 1
p4 = (p4 - 50)//10
else:
p4 = p4//10
p3 = 0
p2 = o%1000
if(p2==0):
p1 = 0
elif(p2>=500):
p1 = 1
p2 = (p2 - 500)//100
else:
p2 = p2//100
p1 = 0

print(p1, end=' ')
print(p2, end=' ')
print(p3, end=' ')
print(p4, end=' ')
print(p5, end=' ')
print(p6)





沒有留言:

張貼留言