首页 > 试题广场 >

幻兽交易

[编程题]幻兽交易
  • 热度指数:2626 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
在最近几场魔兽争霸赛中,赫柏对自己的表现都不满意。
为了尽快提升战力,赫柏来到了雷鸣交易行并找到了幻兽师格丽,打算让格丽为自己的七阶幻兽升星。
经过漫长的等待以后,幻兽顺利升到了满星,赫柏很满意,打算给格丽一些小费。
赫柏给小费是有原则的:
1.最终给格丽的钱必须是5的倍数;
2.小费必须占最终支付费用的5%~10%之间(包含边界)。
升星总共耗费A魔卡,赫柏身上带了B魔卡,赫柏想知道他有多少种支付方案可供选择。
注:魔卡是一种货币单位,最终支付费用=本该支付的+小费

输入描述:
多组测试数据,请处理到文件结束。
对于每组测试数据:
包含两个整数A和B。
保证:
1<=A,B<=2,000,000,000,A<=B。


输出描述:
输出一个整数,代表方案数。
示例1

输入

4 100
23 100

输出

0
1
process.stdin.resume();
process.stdin.setEncoding('ascii');
 
var input = "";
var input_array = "";
 
process.stdin.on('data', function(data) {
    input += data;
});
 
process.stdin.on('end', function() {
    input_array = input.split("\n");
    var nLine = 0;
 
    while(nLine < input_array.length) {
        var line = input_array[nLine++].trim();
        if(line === '') {
            continue;
        }
        var input_arrays = line.split(' ');
        var a = +input_arrays[0];
        var b = +input_arrays[1];
        // start
        deal(a, b);
        // end
    }
});
 
function deal(a, b) {
    var low = Math.ceil(a / 0.95/ 5) * 5;
    var high = Math.floor(a / 0.9/ 5) * 5;
    var limit = b > high ? high : Math.floor(b / 5) * 5;
    var range = limit - low;
    if(range < 0) {
        console.log(0);
    } else{
        console.log(range / 5+ 1);
    }
}
发表于 2016-06-22 11:34:48 回复(0)
    var readline = require('readline');

    rl = readline.createInterface({
            input: process.stdin,
            output: process.stdout
    });

    rl.on('line', function(data){
      var nums = data.split(' ');
      var A = parseInt(nums[0]);
      var B = parseInt(nums[1]);

      var fee = [0,0];
      fee[0]=Math.ceil(A/0.95);
      fee[1]=Math.min(Math.floor(A/0.9),B);

      if(fee[0]>B){
        console.log(0);
      }else{
        var min = Math.ceil(fee[0]/5);
        var max = Math.floor(fee[1]/5);
        console.log(max-min+1);
      }
    });


编辑于 2016-06-16 21:57:44 回复(0)