一、题目链接
http://noi.openjudge.cn/ch0104/14/
二、解题思路
2.1 显然,包裹总邮费由三部分构成:基础邮费8
元、超重邮费、加急邮费,后两项需先判断再计算;
2.2 如果包裹重量大于1000
,说明需要计算超重邮费如下:
▲ 计算超重的重量;
▲ 计算超重的重量对500
的倍数(不足500
的部分按500
计算);
▲ 倍数与4
相乘,计算结果累加到总邮费上;
2.3 如果包裹需要加急服务:总邮费再累加5
元。
三、实施步骤
2.1 定义int
类型的变量w
,代表包裹重量,输入它的数据;
2.2 定义int
类型的变量ans=8
,代表总邮费;
2.3 定义char
类型的变量c
,标记包裹是否需要加急服务,输入它的数据;
2.4 if w>1000
:令w=w-1000
、ans=ans+4*(int)Math.ceil(w/500.0)
;
2.5 if c=='y'
:令ans=ans+5
;
2.6 输出ans
。
四、Java程序
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int w = input.nextInt(); // 包裹重量
int ans = 8; // 总邮费,初始时为基础邮费8元
char c = input.next().charAt(0); // 标记包裹是否需要加急服务
if (w > 1000) { // 如果包裹重量超过1000克
w = w - 1000; // 计算超重的重量
ans = ans + 4 * (int) Math.ceil(w / 500.0); // ans累加超重邮费
}
if (c == 'y') { // 如果包裹需要加急服务
ans = ans + 5; // ans累加5
}
System.out.print(ans);
}
}