在我们的日常生活中,寄快递成了必不可少的事情,比如寄到北京是多少钱呀?如果我要加急需要另外付吗?如果超出了重量需要加付吗?这些都是我们实际会遇到的一些问题,那么今天就和大家一起来讨论一道“全国青少年编程等级考试”的题目“计算邮资”,根据邮件的重量和用户是否愿意加急计算出邮费。
题目描述:根据邮件的重量和用户是否选择加急计算邮费。计算规则:重量在1000克以内(包括1000克),基本费8元。超过1000克的部分,每500克加收超重费4元,不足500克部分按500克计算;如果用户選择加急,多收5元。
输入:输入一行,包含整数和一个字符,以一个空格分开,分别表示重量(单位为克)和是否加急。如果字符是v,说明选择加急;如果字符是n,说明不加急。
输出:输出一行,包含一个整数,表示邮费。
输入样例:1200y
输出样例:17
通过分析题目我们可以在一张表格上把所有的可能性给列出来,根据不同重量,算基本的费用,再考虑是否需要加急,最后算出总费用。那么根据表格我们可以画出一张流程图(图1):
接下来我们用C++语言来写一下(图2)。
weight:总重量;cost:总费用;quick:是否加急
代码解析:当重量大于1000克时,我们会拿总重量-1000代表超出的重量,根据超出的重量进行判断(weight是否能被500整除),当超出的重量刚好是500的倍数的时候weight/500*4。如果最后超出重量不能被500整除那么cost直接加4,计算完重量邮资后,看是否需要加急,如果需要加急,cost加5,如果不需要加急,cost则不需要加5。