追蹤者

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)





2018年8月24日 星期五

用 Python 做商管程式設計(一)

02-05 跳脫字元&基本運算
    print("hello\nworld") => 換行
    \t 是空格
 *乘除運算
3**(5/2)   => 3的2.5次方 = 15.588
3**(5//2)  => 5//2 為取floor 即 2 = 3^2 = 9

02-06 input() 由keyboard 輸入
type() => 取該變數的類別

ex:
num1 = int()
num2 = int()
num1 = int(input()) => 要有宣告int,不然就會被視為字串
num2 = int(input())
print(num1+num2)

02-08 除錯
*syntex error : 語意(法)錯誤
*logic error :  邏輯錯誤

02-09 notepad++ 執行python
點執行輸入 : cmd /k C:/Python36/python "$(FULL_CURRENT_PATH)" $ PAUSE $ EXIT
若已設置好環境變數 輸入: cmd /k python "$(FULL_CURRENT_PATH)" $ PAUSE $ EXIT
儲存執行 > 設定快捷鍵(F10)

02-練習
記得處理型態轉換時,變數放在int的括號內,如 : int(x)

03-a04 字串
chr() : function 丟 -127~128 查詢ASCII CODE的值為何?
len() : 回傳字串長度

03-b01 型態轉換
int() : 將數字轉為整數型態
float() : 將數字轉為浮點數型態
str() : 將數字轉為字串

03-b02 輸入輸出
print() : 輸出
逗點區隔,例如:
    print("a+b=", a+b)  //a+b本來是一個數字,它會被先轉成字串,再和前面接起來。
*注意: 當用逗點隔開時,兩者中間會自動加一個空白,若不想要空白記得用+號
    print("My income is $"+str(income))

03-c01 條件式判斷
if , else , elif
if 或else 後面要冒號,敘述句要縮排(indention)
縮排大小要一致,tab和空四格不同,
if a:
    then b
if c:
    then d
03-d01 註解
# : 一行
""" : 一區塊