在我們的日常生活中,寄快遞成了必不可少的事情,比如寄到北京是多少錢呀?如果我要加急需要另外付嗎?如果超出了重量需要加付嗎?這些都是我們實(shí)際會遇到的一些問題,那么今天就和大家一起來討論一道“全國青少年編程等級考試”的題目“計(jì)算郵資”,根據(jù)郵件的重量和用戶是否愿意加急計(jì)算出郵費(fèi)。
題目描述:根據(jù)郵件的重量和用戶是否選擇加急計(jì)算郵費(fèi)。計(jì)算規(guī)則:重量在1000克以內(nèi)(包括1000克),基本費(fèi)8元。超過1000克的部分,每500克加收超重費(fèi)4元,不足500克部分按500克計(jì)算;如果用戶選擇加急,多收5元。
輸入:輸入一行,包含整數(shù)和一個(gè)字符,以一個(gè)空格分開,分別表示重量(單位為克)和是否加急。如果字符是v,說明選擇加急;如果字符是n,說明不加急。
輸出:輸出一行,包含一個(gè)整數(shù),表示郵費(fèi)。
輸入樣例:1200y
輸出樣例:17
通過分析題目我們可以在一張表格上把所有的可能性給列出來,根據(jù)不同重量,算基本的費(fèi)用,再考慮是否需要加急,最后算出總費(fèi)用。那么根據(jù)表格我們可以畫出一張流程圖(圖1):
接下來我們用C++語言來寫一下(圖2)。
weight:總重量;cost:總費(fèi)用;quick:是否加急
代碼解析:當(dāng)重量大于1000克時(shí),我們會拿總重量-1000代表超出的重量,根據(jù)超出的重量進(jìn)行判斷(weight是否能被500整除),當(dāng)超出的重量剛好是500的倍數(shù)的時(shí)候weight/500*4。如果最后超出重量不能被500整除那么cost直接加4,計(jì)算完重量郵資后,看是否需要加急,如果需要加急,cost加5,如果不需要加急,cost則不需要加5。