洛谷B2048
题目描述
请根据邮件的重量和用户选择是否加急计算邮费。计算规则:
重量在 1000以内(包括),基本费 8 元;
超过 1000克的部分,每 500 克加收超重费 4 元,不足 500克部分按 500克计算;
如果用户选择加急,多收 5 元。
输入格式
一行,包含一个正整数 x 和一个字符 c(y 或 n),之间用一个空格隔开,分别表示重量和是否加急。
如果字符是 y,说明选择加急;如果字符是 n,说明不加急。
输出格式
输出一行一个正整数,表示邮费。
代码:
#include<iostream>
#include<iomanip>
#include<math.h>
using namespace std;
int main()
{
//输入重量和是否加急
int x;char ch;
cin>>x>>ch;
//不足1000,且不加急,直接8元
if(x<=1000&&ch=='n')cout<<8<<endl;
//超过1000且不加急,100以内的8,
//超过的部分每500g收取4元,不足500g的按照500g,则需要一个取整函数ceil()
if(x>1000&&ch=='n')cout<<8+ceil((x-1000)/500.0)*4<<endl;
//小于1000,而且是加急件,多加5元
if(x<=1000&&ch=='y')cout<<8+5<<endl;
//大于1000,且是加急件, 计算方法与不加急相同,在最后的基础上收5元加急费
if(x>1000&&ch=='y')cout<<8+5+ceil((x-1000)/500.0)*4<<endl;
return 0;
}
结果: