#52. 【分支】计算邮资
【分支】计算邮资
题目描述
根据邮件的重量和用户是否选择加急计算邮费。计算规则:重量在1000克以内(包括1000克), 基本费8元。超过1000克的部分,每500克加收超重费4元,不足500克部分按500克计算;如果用户选择加急,多收5元。
题目格式
输入
输入一行,包含整数和一个字符,以一个空格分开,分别表示重量(单位为克)和是否加急。如果字符是y,说明选择加急;如果字符是n,说明不加急。
输出
输出一行,包含一个整数,表示邮费。
题目样例
1200 y
17
题目解释
输入的1200
代表邮件克重。
- 其中1000克,收取基本邮费8元;
- 剩余的200克按照500克计算,收取超重费用4元。
- 输入的
y
表示用户选择加急,则额外再收取5元。
因此, 元。
题目提示
-
有关克重的计算问题,计算超过1000克部分的时候,可以计算有多少个500克,来决定再收取多少个超重费用。假设现在有3200克,在除去基本邮费的1000克之后,还有2200克。2200克中有4.4个500克,但是需要按5个来算,所以超重邮资应该收费20元。
-
有关输入的问题,可以看到这道题目与之前的题目的输入都不一样。它是在同一行输入两个内容,并且这两个内容的类型还不一样。这时候,我们应该这样做(假设输入是
1200 y
):-
1)先接收下完整的一行,注意此时的
line
是字符串:line = input()
-
2)然后将这一行按空格来分割,使用
split()
函数可以将字符串按空格来分割并且结果是列表:line = line.split()
-
3)现在变量
line
就是一个列表,里面有两个字符串,分别是"1200"
和"y"
:列表的第一项 列表的第二项 列表的内容 "1200" "y" 列表的序号 0 1 -
4)因此,想获得输入的第一个整数(代表克重),需要进行类型转换:
n = int(line[0]) #1200在line的第0号位置
-
5)因此,想获得输入的第二个字符串(代表是否加急),则直接通过序号获取,无需进行类型转换:
jiaji = line[1]
-