http://codevs.cn/problem/2235/
题目描述 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。
分析:
因为折扣可能是一个小数位的小数,所以直接让折扣 * 10操作,最后再判断乘积的倒数第三位四舍五入。
AC代码:
/*
作者:1348066599@qq.com
题目:p2235 机票打折
*/ #include <stdio.h>
#include <algorithm>
#include <iostream>
#include <string.h>
#include <string>
#include <math.h>
#include <stdlib.h>
#include <queue>
#include <stack>
#include <set>
#include <map>
#include <list>
#include <iomanip>
#include <vector>
#pragma comment(linker, "/STACK:1024000000,1024000000")
#pragma warning(disable:4786) using namespace std; const int INF = 0x3f3f3f3f;
const int MAX = + ;
const double eps = 1e-;
const double PI = acos(-1.0); int main()
{
int n;
float m;
while(~scanf("%d %f",&n , &m))
{
n = n * m * ;
if((n % ) / < )
n = (n - (n % )) / ;
else
n = (n - (n % )) / + ;
printf("%d\n",n);
}
return ;
}