1102 聪聪买书
题目描述 Description
圣诞节快到了,聪聪准备给他的好朋友们买些小礼物。当然,聪聪知道这些好朋友们都非常喜欢看漫画书,所以,聪聪就决定买些好看的漫画书送给他们。经过一段时间的调查,聪聪发现有3种买书的方式:
1 .书店现场购买:10元/本,超过5本以外的,8元/本,超过10本以外的,则6.5元/本;
2.网上购买:9元/本,超过10本,全部打8折,超过50本,则全部打六折;
3.团购:10本起团购,7元/本,达到或超过30本,则6元/本,达到或超过50本,则5元/本。
聪聪想用其中一种方式购n本书,请你帮他计算应付多少元钱?
输入描述 Input Description
输入文件只有1行为两个数k和n,中间以一个空格隔开
其中k表示选择的购买方式(k=1表示书店现场购买,k=2表示网上购买,k=3表示团购),n表示购买的本数(n<=200)。
输出描述 Output Description
应付钱数(结果四舍五入保留到个位)
样例输入 Sample Input
1 11
样例输出 Sample Output
97
95分代码:
#include<bits/stdc++.h>
using namespace std;
int k,n;
double yuan;
int main(){
cin>>k>>n;
if(k==1){
if(n<=5)yuan=n*10;
else if(n<=10)yuan=5*10+(n-5)*8;
else yuan=5*10+(10-5)*8+(n-10)*6.5;
}
if(k==2){
if(n<=10)yuan=n*9;
else if(n<=50)yuan=n*9*0.8;
else yuan=n*9*0.6;
}
if(k==3){
if(n<=30)yuan=7*n;
else if(n<=50)yuan=n*6;
else yuan=n*5;
}
cout<<int(yuan+0.5);
return 0;
}
错了一个测试点,求解!
int k,n; int main(){ double ans; cin>>k; cin>>n; if(k==1) { if(n<=5) ans=10*n; else if(n>=6 && n<=10) ans=5*10+(n-5)*8; else if(n>10) ans=5*10+(10-5)*8+(n-10)*6.5; } else if(k==2){ if(n<=10) ans=9*n; else if(n<=50) ans=7.2*n; else ans=5.4*n; } else if(k==3){ if(n>=10 && n<30) ans=7*n; else if(n<50) ans=6*n; else ans=5*n; } cout<<int(ans+0.5);
核心,拜托采纳