Codility - CountDiv JavaScript解决方案

Bol*_*ola 3 javascript

我对JavaScript仍然有点新意,所以如果有人想解释如何解决这个小问题.

基本上,我使用不同的语言来解决训练任务.我在使用java脚本,浮点时遇到了小问题.这是我的意思的例子.有问题的任务在第3课,第一项:CountDiv

在Java中,我的解决方案完美无缺,得分为100/100.这是代码:

class Solution {
    public int solution(int A, int B, int K) {

        int offset = A % K ==0?1:0;

        return (B/K) - (A/K) + offset;

    }
}
Run Code Online (Sandbox Code Playgroud)

用java脚本编写的代码得分为75/100.

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);
}
Run Code Online (Sandbox Code Playgroud)

JavaScript测试在以下测试中失败:A = 11,B = 345,K = 17(返回19,期望20)

我假设它与JavaScript如何将浮点转换为整数有关?

如果有人关心如何正确编写JS解决方案?

谢谢

Tus*_*har 7

用于parseInt除法结果.

当您使用除法运算符时,结果将强制转换为浮点数,以使其整数使用parseInt.(感谢@ahmacleod)

function solution(A, B, K) {
    var offset = A % K === 0 ? 1 : 0;
    return parseInt(B / K) - parseInt(A / K) + offset;
}
Run Code Online (Sandbox Code Playgroud)