2016年9月7日 星期三

python 程式設計50題測試範例-23

23、若有一分、五分、一角、二角、二角五分、五角之銅板,各種銅板之個
   數設為無限多,求最少之銅板個數,其總值為吾人所期望之金額。
   測試資料:
          (A)一元       (B)七角五分     (C)九角
          (D)八角二分   (E)一元六角六分
程式 :
#coding=utf8

print("23、若有一分、五分、一角、二角、二角五分、五角之銅板,各種銅板之個")
print("   數設為無限多,求最少之銅板個數,其總值為吾人所期望之金額。")

   
while True:
     x1=int(input("請輸入數字 (多少元 小於50):"))
     try:
        x1 = int(x1)
       
     except ValueError:
       print ('這是不合法的輸入.  請再輸入一次...')
       continue
        
     if ( x1 >= 0 and x1 < 50 ):
       break
#==================
while True:
     x2=int(input("請輸入數字 (多少角 小於10):"))
     try:
        x2 = int(x2)
       
     except ValueError:
       print ('這是不合法的輸入.  請再輸入一次...')
       continue
        
     if ( x2 >= 0 and x2 < 10 ):
       break
#==================
while True:
     x3=int(input("請輸入數字 (多少分 小於10):"))
     try:
        x3 = int(x3)
       
     except ValueError:
       print ('這是不合法的輸入.  請再輸入一次...')
       continue
        
     if ( x3 >= 0 and x3 < 10 ):
       break
#==================
n=x1*100+x2*10+x3
sum1=0
j= [50,25,20,10,5,1]
j1=["五    角","二角五分","二    角","一    角","五    分","一    分"]
for i in range(len(j)):
    y=int(n/j[i])
    print(j1[i],"之銅板 : ",'{:d}'.format(y))
    n=n%j[i]
    sum1=sum1+y

print("總共有",'{:d}'.format(sum1),"枚銅板")


結果:
================= RESTART: D:/程式語言 Python 入門/50題/Ex50-23.py =================
23、若有一分、五分、一角、二角、二角五分、五角之銅板,各種銅板之個
   數設為無限多,求最少之銅板個數,其總值為吾人所期望之金額。
請輸入數字 (多少元 小於50):2
請輸入數字 (多少角 小於10):6
請輸入數字 (多少分 小於10):6
五    角 之銅板 :  5
二角五分 之銅板 :  0
二    角 之銅板 :  0
一    角 之銅板 :  1
五    分 之銅板 :  1
一    分 之銅板 :  1
總共有 8 枚銅板
>>> 


================= RESTART: D:/程式語言 Python 入門/50題/Ex50-23.py =================
23、若有一分、五分、一角、二角、二角五分、五角之銅板,各種銅板之個
   數設為無限多,求最少之銅板個數,其總值為吾人所期望之金額。
請輸入數字 (多少元 小於50):1
請輸入數字 (多少角 小於10):6
請輸入數字 (多少分 小於10):6
五    角 之銅板 :  3
二角五分 之銅板 :  0
二    角 之銅板 :  0
一    角 之銅板 :  1
五    分 之銅板 :  1
一    分 之銅板 :  1
總共有 6 枚銅板

>>> 

沒有留言:

張貼留言

Messaging API作為替代方案

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