zoukankan      html  css  js  c++  java
  • CODE[VS]-机票打折-浮点数处理-天梯青铜

    题目描述 Description

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

    输入样例1:

    888 7

    输出样例1:

    620

    输入样例2:

    1255 7 

    输出样例2:

    880

    输入描述 Input Description

    输入只有一行两个数(两数间用一个空格分隔),第一个为整数,表示机票原价,第二个整数或实数(如是实数,小数点后最多1位数字)表示打折率。

    输出描述 Output Description

    输出只有一行一个正整数,表示打折后的机票价格。

    样例输入 Sample Input

    888 7

    样例输出 Sample Output

    620

    数据范围及提示 Data Size & Hint

    原机票价格大于100小于9999,打折率大于1小于9.9。

    思路:这题有点复杂,可以用两个float浮点数保存机票价格和打折率,然后计算乘积除以100(为什么要除以100,因为要保留到十位,如果除以10的话只是保留到了个位,最后再将结果乘回10),可以用:=(int)(x+0.5)>(int)x?(int)x+1:(int)x 这个代码来实现四舍五入,int类型的y,浮点数类型的x,返回的就是四舍五入后的结果

    代码如下:

     1 #include <stdio.h>
     2 int main()
     3 {
     4     float a,b;
     5     float c;
     6     int ans;
     7     scanf("%f%f",&a,&b);
     8     c=a*b/100;//去掉最后两位数
     9     ans=(int)(c+0.5)>(int)c?(int)c+1:(int)c;//四舍五入
    10     printf("%d
    ",ans*10);//再乘回一位数
    11     return 0;
    12 }
  • 相关阅读:
    数学+高精度 ZOJ 2313 Chinese Girls' Amusement
    最短路(Bellman_Ford) POJ 1860 Currency Exchange
    贪心 Gym 100502E Opening Ceremony
    概率 Gym 100502D Dice Game
    判断 Gym 100502K Train Passengers
    BFS POJ 3278 Catch That Cow
    DFS POJ 2362 Square
    DFS ZOJ 1002/HDOJ 1045 Fire Net
    组合数学(全排列)+DFS CSU 1563 Lexicography
    stack UVA 442 Matrix Chain Multiplication
  • 原文地址:https://www.cnblogs.com/geek-007/p/5671714.html
Copyright © 2011-2022 走看看