Codility – CountDiv JavaScript解决方案

我对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;
}

本文来自投稿,不代表实战宝典立场,如若转载,请注明出处:https://www.shizhanbaodian.com/654.html

(0)
上一篇 2022年5月29日 下午8:39
下一篇 2022年5月29日 下午8:39

相关推荐

发表评论

登录后才能评论