ceil()向上取整
floor向下取整
题目
在最近几场魔兽争霸赛中,赫柏对自己的表现都不满意。
为了尽快提升战力,赫柏来到了雷鸣交易行并找到了幻兽师格丽,打算让格丽为自己的七阶幻兽升星。
经过漫长的等待以后,幻兽顺利升到了满星,赫柏很满意,打算给格丽一些小费。
赫柏给小费是有原则的:
1.最终给格丽的钱必须是5的倍数;
2.小费必须占最终支付费用的5%~10%之间(包含边界)。
升星总共耗费A魔卡,赫柏身上带了B魔卡,赫柏想知道他有多少种支付方案可供选择。
注:魔卡是一种货币单位,最终支付费用=本该支付的+小费
输入描述:
多组测试数据,请处理到文件结束。
对于每组测试数据:
包含两个整数A和B。
保证:
1<=A,B<=2,000,000,000,A<=B。
输出描述:
输出一个整数,代表方案数。
输入例子:
4 100
23 100
输出例子:
0
1
思路
考虑使用ceil和floor函数来取整。
代码
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
int a,b;
while(cin>>a>>b)
{
int count = 0;
int start = ceil(a/0.95);//起点(向上取整)
int end = floor(a/0.90);//终点(向下取整)
while((start % 5 != 0)&&(start<=end))
++start;
for(int i = start; i <= end&&i <= (b-a); i += 5)
++count;
cout<<count<<endl;
}
return 0;
}
引用:
引用自牛客网乐视面试题,程序略作修改