Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 调试万圣节特卖:Hackerrank_Javascript_Algorithm - Fatal编程技术网

Javascript 调试万圣节特卖:Hackerrank

Javascript 调试万圣节特卖:Hackerrank,javascript,algorithm,Javascript,Algorithm,我们的想法是应用线性递增折扣,直到达到m值,然后所有下一次购买都是m 看起来很简单,但我的方法没有涵盖一些边缘情况 示例: while(remaining > min && max > min) { count++ max-=d remaining -= max } 输入: while(remaining > min && max > min) { count++

我们的想法是应用线性递增折扣,直到达到
m
值,然后所有下一次购买都是
m

看起来很简单,但我的方法没有涵盖一些边缘情况

示例:

while(remaining > min && max > min) {
        count++
        max-=d
        remaining -= max
    }
输入:

while(remaining > min && max > min) {
        count++
        max-=d
        remaining -= max
    }
16,2,19981

输出:

while(remaining > min && max > min) {
        count++
        max-=d
        remaining -= max
    }
9918

预期输出:

while(remaining > min && max > min) {
        count++
        max-=d
        remaining -= max
    }
9917

我错过了什么

更好的方法也受到高度赞赏

//试穿(20,3,6,80)效果很好
函数howManyGames(p,d,m,s){
//返回您可以购买的游戏数量
如果(s最小值&最大值>最小值){
计数++
最大值-=d
剩余-=最大值
}
返回计数+(m!==0?数学楼层(剩余/m):0)

}
错误:

while(remaining > min && max > min) {
        count++
        max-=d
        remaining -= max
    }
max>min

执行此操作时,您不是在比较当前最大值和最小值,否则您是在比较上一次操作的最大值和最小值

此外,剩余值应始终大于最大值

如果max大于m,你就不能以m的价格购买物品

看看下面的代码,它通过了所有测试用例

//完成下面的“游戏数量”功能。
函数howManyGames(p,d,m,s){
//返回您可以购买的游戏数量
如果(最小值和最大值>最小值和剩余值>最大值){
计数++
剩余-=最大值
最大值-=d
}
如果(最大值>米)
返回计数
返回计数+(m!==0?数学楼层(剩余/m):0)
}