這個題目很有意思,外國教材中的作業(yè)題目都很精彩。
10年積累的成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、外貿(mào)網(wǎng)站建設(shè)經(jīng)驗(yàn),可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識你,你也不認(rèn)識我。但先建設(shè)網(wǎng)站后付款的網(wǎng)站建設(shè)流程,更有武陵源免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
因?yàn)樗鼪]有限制零錢的數(shù)量,所以只需要按從大到小的順序找錢就可以了。 這是一個取整運(yùn)算。
給你講一個原理,你自己完成細(xì)節(jié)。
假設(shè)商品價格是Y, 客戶給錢數(shù)是Z, 那么Z-Y的余數(shù)就是要找的零錢。
Z-Y的數(shù)量依次被50,20,10,5紙幣來除,如果還有小數(shù),除不盡,那么繼續(xù)使用2,1,0.25等等的硬幣去除。最終應(yīng)該剛好除盡。 為了防止浮點(diǎn)運(yùn)算誤差??梢砸婚_始就將Z和Y乘以100,再轉(zhuǎn)換成整數(shù)。這樣就沒有問題了。
求余使用的運(yùn)算符是%,百分號。 你需要將50,20,10.。。2,1,0.25.。。等等放到一個數(shù)組里,依次除,如果余數(shù)為0,則break。
沒看懂你的需求,不過出錯的原因是因?yàn)槌栍缅e了,下面這樣就行了
#?-*-?coding:?cp936?-*-
def?main():
j=input("輸入價格:(元)")
zz=(1-j)*100
a1,a2=zhaolin(zz,50)
b1,b2=zhaolin(a2,20)
c1,c2=zhaolin(b2,10)
d1,d2=zhaolin(c2,5)
e1,e2=zhaolin(d2,2)
f1,f2=zhaolin(e2,1)
print?a1,b1,c1,d1,e1,f1??
def?zhaolin(x,y):
z=x/y
w=x-x/y*y
return?z,w
main()
修改了一下,應(yīng)該滿足了你的要求了。
#?-*-?coding:?cp936?-*-
def?main():
j=input("輸入價格:(元)")
zz?=?100?-?j*100
zhaolin2(zz)
#????a1,a2=zhaolin(zz,50)
#????b1,b2=zhaolin(a2,20)
#????c1,c2=zhaolin(b2,10)
#????d1,d2=zhaolin(c2,5)
#????e1,e2=zhaolin(d2,2)
#????f1,f2=zhaolin(e2,1)
#????print?a1,b1,c1,d1,e1,f1??
def?zhaolin(x,y):
z=x/y
w=x-x/y*y
return?z,w
def?zhaolin2(x):
linqian_jiao?=?[50,20,10]
for?i?in?linqian_jiao:
x_tmp?=?x/i
if?x_tmp?=?1:
x_tmp?=?int(x_tmp)
x?=?x?-?i*x_tmp
jiao?=?i/10
print?'找您'+?str(x_tmp)?+?'個'?+?str(jiao)?+?'角硬幣;'
linqian_fen?=?[5,2,1]
for?i?in?linqian_fen:
x_tmp?=?int(x//i)
if?x_tmp?=1:
x_tmp?=?int(x_tmp)
x?=?x?-?i*x_tmp
x_tmp?=?int(x_tmp)
print?'找您'+?str(x_tmp)?+?'個'?+?str(i)?+?'分硬幣;'
main()
由程序的要求我們可以得到,找50元的5張,找5元的6張,找1元的3張??梢灾苯佑萌∮嗟炔僮魉愠鰜?,或者用貪心思想解決問題,但是用取余簡單。
正確代碼:
count=283
x = int(count/50)
y = int((count-x*50)/5)
z=count-(x*50)-(y*5)
print('找零{}元其中\(zhòng)n50元:{}張\n5元: {}張\n1元: {}張\n'.format(count,x,y,z))
擴(kuò)展資料:
Python的優(yōu)缺點(diǎn):
優(yōu)點(diǎn):
1、簡單,Python是一種代表簡單主義思想的語言。閱讀一個良好的Python程序就感覺像是在讀英語一樣。它使你能夠?qū)W⒂诮鉀Q問題而不是去搞明白語言本身。
2、易學(xué),Python極其容易上手,因?yàn)镻ython有極其簡單的說明文檔。
3、速度快,Python 的底層是用 C 語言寫的,很多標(biāo)準(zhǔn)庫和第三方庫也都是用 C 寫的,運(yùn)行速度非常快。
4、免費(fèi)、開源,Python是FLOSS(自由/開放源碼軟件)之一。使用者可以自由地發(fā)布這個軟件的拷貝、閱讀它的源代碼、對它做改動、把它的一部分用于新的自由軟件中。FLOSS是基于一個團(tuán)體分享知識的概念。
5、高層語言,用Python語言編寫程序的時候無需考慮諸如如何管理你的程序使用的內(nèi)存一類的底層細(xì)節(jié)。
6、可移植性,由于它的開源本質(zhì),Python已經(jīng)被移植在許多平臺上(經(jīng)過改動使它能夠工作在不同平臺上)。
7、解釋性,一個用編譯性語言比如C或C++寫的程序可以從源文件(即C或C++語言)轉(zhuǎn)換到一個你的計(jì)算機(jī)使用的語言(二進(jìn)制代碼,即0和1)。這個過程通過編譯器和不同的標(biāo)記、選項(xiàng)完成。
8、規(guī)范的代碼,Python采用強(qiáng)制縮進(jìn)的方式使得代碼具有較好可讀性。而Python語言寫的程序不需要編譯成二進(jìn)制代碼。
缺點(diǎn):
運(yùn)行速度慢:這里是指與C和C++相比。
參考資料來源:百度百科-Python