我对JavaScript还是有点陌生,所以如果有人愿意解释如何解决这个小问题。
基本上,我是用不同的语言来解决codility训练任务。我在使用java脚本时遇到了一个小问题,浮点数。下面是我说的例子。有关任务是在 第三课, 任务一: CountDiv
在Java中,我的解决方案完美地工作,它的得分是100100。这里是代码。
class Solution {
public int solution(int A, int B, int K) {
int offset = A % K ==0?1:0;
return (B/K) - (A/K) + offset;
}
}
用java写的脚本代码得了75100分。
function solution(A, B, K) {
var offset;
if (A % K === 0) {
offset=1;
} else {
offset=0;
}
var result =(B/K) - (A/K) + offset;
return parseInt(result);
}
JavaScript解决方案在以下测试中失败:A=11,B=345,K=17(返回19,预期20)
我猜测其与JavaScript如何将浮点转换为整数有关?
如果有人能解释一下如何正确编写JS解决方案?
谅谅
解决方案:
使用 parseInt
在除法结果上。
当你使用除法运算符时,结果会被强制为浮点数,要使其成为整数,则使用 parseInt
上。(感谢 @ahmacleod)
function solution(A, B, K) {
var offset = A % K === 0 ? 1 : 0;
return parseInt(B / K) - parseInt(A / K) + offset;
}