问题标题: 酷町堂:1102 聪聪买书

0
0
已解决
李宜和
李宜和
高级启示者
高级启示者

1102   聪聪买书

经验值:400 时间限制:1000毫秒

合肥市第28届信息学竞赛

不许抄袭,一旦发现,直接清空经验!

题目描述 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

 

 

错误代码:

#include<bits/stdc++.h>
using namespace std;
long long a,b;
double sum;
int main(){
    cin>>a>>b;
    if(a==1){
        while(b!=0){
            if(b>10){
                sum+=(b*6.5);
            }else if(b>5&&b<=10){
                sum+=(b*8);
            }else if(b<=5){
                sum+=(b*10);
            }
            b--;
        }
    }else if(a==2){
        if(b<=10){
            sum+=(b*9);
        }
        if(b>10&&b<=50){
            sum+=((b*9)*0.8);
        }
        if(b>50){
            sum+=((b*9)*0.6);
        }
    }else if(a==3){
        if(b>=10){
            if(b>=10&&b<30){
                sum+=(b*7);
            }else if(b>=30&&b<50){
                sum+=(b*6);
            }else{
                sum+=(b*5);
            }
        }
    }
    cout<<(int)(sum+0.5);
    return 0;
}

 

 

发核心的,分段!!!

 


0
已采纳
张展嘉
张展嘉
新手天翼
新手天翼
 cin>>k>>n;
    if(k==1){
        if(n<=5){
            sum=n*10;
        }else if(n<=10){
            sum=50+(n-5)*8;
        }else{
            sum=90+(n-10)*6.5;
        }
    }else if(k==2){
        if(n<=10){
            sum=n*9;
        }else if(n<=50){
            sum=9*0.8*n;
        }else{
            sum=9*0.6*n;
        }
    }else{
        if(n>=10&&n<30){
            sum=7*n;;
        }else if(n<50){
            sum=6*n;
        }else{
            sum=5*n;
        }
    }
    cout<<(int)(sum+0.5);

 

0
王文博
王文博
缔造者之神
缔造者之神

分段计费,不用这个样子,用sum统计即可AC。

核心:

    if(k==1)
    {
        if(n<=5) sum=10*n;
        else if(n<=10) sum=10*5+8*(n-5);
        else sum=10*5+8*5+6.5*(n-10);
    }
    else if(k==2)
    {
        if(n<=10) sum=9*n;
        else if(n<=50) sum=9*n*0.8;
        else sum=9*n*0.6;
    }
    else
    {
        if(n<30) sum=7*n;
        else if(n<50) sum=6*n;
        else sum=5*n;
    }
    if((sum-(int)sum)<0.5) cout<<(int)sum;
    else cout<<(int)(sum+1);

 

0
朱小川
朱小川
缔造者
缔造者

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);

核心

0
0
李沫朴
李沫朴
新手天翼
新手天翼
  •  cin>>k>>n;
  • if(k==1){
  • if(n<=5){
  • c=n*10;
  • } else if(n<=10){
  • c=50+(n-5)*8;
  • } else if(n>10){
  • c=90+(n-10)*6.5;
  • }
  • } if(k==2){
  • if(n<=10){
  • c=n*9;
  • } else if(n<=50){
  • c=n*7.2;
  • } else if(n>50){
  • c=n*5.4;
  • }
  • } if(k==3){ i
  • f(n<=29){
  • c=n*7;
  • } else if(n<=49){
  • c=n*6;
  • } else if(n>50){
  • c=n*5;
  • }
  • }
  • cout<<(int)(c+0.5);
0
0
李锦昊
李锦昊
中级天翼
中级天翼
cin>>k>>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);

 

我要回答