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