#52. 【分支】计算邮资

【分支】计算邮资

题目描述

根据邮件的重量和用户是否选择加急计算邮费。计算规则:重量在1000克以内(包括1000克), 基本费8元。超过1000克的部分,每500克加收超重费4元,不足500克部分按500克计算;如果用户选择加急,多收5元。

题目格式

输入

输入一行,包含整数和一个字符,以一个空格分开,分别表示重量(单位为克)和是否加急。如果字符是y,说明选择加急;如果字符是n,说明不加急。

输出

输出一行,包含一个整数,表示邮费。

题目样例

1200 y
17

题目解释

输入的1200代表邮件克重。

  1. 其中1000克,收取基本邮费8元;
  2. 剩余的200克按照500克计算,收取超重费用4元。
  3. 输入的y表示用户选择加急,则额外再收取5元。

因此,8+4+5=178 + 4 + 5 = 17 元。

题目提示

  1. 有关克重的计算问题,计算超过1000克部分的时候,可以计算有多少个500克,来决定再收取多少个超重费用。假设现在有3200克,在除去基本邮费的1000克之后,还有2200克。2200克中有4.4个500克,但是需要按5个来算,所以超重邮资应该收费20元。

  2. 有关输入的问题,可以看到这道题目与之前的题目的输入都不一样。它是在同一行输入两个内容,并且这两个内容的类型还不一样。这时候,我们应该这样做(假设输入是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]