codeVS之旅:2235 机票打折

原题:http://codevs.cn/problem/2235/

.输入机票原价(3到4位的正整数,单位:元),再输入机票打折率(小数点后最多一位数字)。编程计算打折后机票的实际价格(单位:元。计算结果要将个位数四舍五入到十位数“元”)。输入只有一行两个数(两数间用一个空格分隔),第一个为整数,表示机票原价,第二个整数或实数(如是实数,小数点后最多1位数字)表示打折率。

输入样例1:

888  7

输出样例1:

620

输入样例2:

1255  7 

输出样例2:

 880

PS:

最近开始重新练习算法,也给自己定了一个小目标,每天至少刷一道算法题,然后之前就在CODEVS注册过帐号,但是没有做过里面的题,因此现在也是滕出时间来开始学习。

这道题我的代码是这样的:

#include <iostream>
#include<cstdio>

using namespace std;

int main()
{
    int oldprice;
    double discount;
    cin>>oldprice;
    cin>>discount;
    int a = oldprice*discount;
    int yu = a%10;
    int chu = a/10;
    if(yu>=5)
    {
        chu = chu+1;
    }
    int yu2 = chu%10;
    int chu2 = chu/10;
    if(yu2>=5)
    {
        chu2 = (chu2+1)*10;
    }else
    {
        chu2 = chu2*10;
    }

    cout<<chu2;
    return 0;
}

可以看出来代码写的还是很乱,也没有遵循代码规范。然后我去看了题解,因为我知道自己这个解决方法实在是有点蠢的,也抱着多学习别人思路的想法。并决定把好的思路学习一下。

思路:round函数的使用。

c++有一个四舍五入的函数,叫做round。(这个都不知道,觉得自己很呆。)

int main()
{
    int a;
    double b;
    scanf("%d %lf",&a,&b);
    printf("%d",(int)(round(a*b/100))*10);
    return 0;
}

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值