只得了40分,没有通过全部测试点,请看下还有哪些地方有遗漏
问题描述:
【题目描述】
根据邮件的重量和用户是否选择加急计算邮费。计算规则:重量在1000克以内(包括1000克), 基本费8元。超过1000克的部分,每500克加收超重费4元,不足500克部分按500克计算;如果用户选择加急,多收5元。
【输入】
输入一行,包含整数和一个字符,以一个空格分开,分别表示重量(单位为克)和是否加急。如果字符是y,说明选择加急;如果字符是n,说明不加急。
【输出】
输出一行,包含一个整数,表示邮费。
【输入样例】
1200 y
【输出样例】
17
#include<iostream>
using namespace std;
int main(){
int a; //重量
char b; //是否加急
cin >> a >> b;
int s = 0;
if(a<=1000){
s+=8;
} else{//a>1000
a=a-1000;
if(a%500 == 0){
s=8+4*a/500;
}else{
s=8+4*a/500+1;
}
}
if(b=='y'){
s+=5;
}
cout << s;
return 0;
}
答
简便写法
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int m,money;
char ch;
cin>>m>>ch;
if(m>1000) money=8+ceil((m-1000)/500.0)*4;
else money=8;
if(ch=='y') money=money+5;
cout<<money<<endl;
return 0;
}
答
15行改为s=8+4*(a/500+1);