检查一个数字是否可被另一个数字整除如果不能在Javascript中使其可分割

时间:2016-02-24 15:39:26

标签: javascript

我想检查数字(7)是否可以被另一个数字(5)整除,如果数字可以被数字整除,那么我需要返回相同的数字。如果该数字不能被另一个数字整除,我需要将其整除并返回更新的值。

var i =7;
if (i % 5 == 0) {
 alert("divisible by 5");
} else {
    alert("divisible not by 5");
} 

如果条件满足,那么我需要返回相同的值。如果条件不满足,我需要添加所需的数字,然后使其成为可分割的。 (就像7不能被5整除所以我需要添加3到7并返回值10,它可以被5整除)。

是否存在任何数学函数来实现相同的功能?

6 个答案:

答案 0 :(得分:3)

看起来你想要的是:

    for (final WeakReference<Subscriber> sub : subscribers) {
        if (sub.get() != null) {
            sub.get().update());
        }
    }

对于function roundTo(n, d) { return Math.floor((n + d - 1) / d) * d; } 10和n 5,您将获得10分。对于d 7和n 5,您还得到10.代码所做的是将一个小于除数的值加到输入数字,然后除以除数。然后它除去任何小数部分(d)并再次乘以除数。

答案 1 :(得分:2)

您可以使用此算法:

i % n = r,其中i = 7n = 5r = 2

然后,制作i = i + (n - r)。即i = 7 + (5-2)10。然后你可以将它用于你的部门。

答案 2 :(得分:2)

你可以通过使用简单的while循环来实现:

function doThat(number, divider) {
    while(number % divider !== 0) {
      number++;
    }
    return number;
}

doThat(12, 5); // => returns 15

这是一个小提琴:https://jsfiddle.net/rdko8dmb/

答案 3 :(得分:1)

试试这个

var i =7;

if (i % 5 == 0) {
    alert("divisible by 5");
} else {
    var j = i % 5;
    var num = i + (5-j);
    alert("divisible not by 5 but the next divisible number is :" + num);
} 

答案 4 :(得分:0)

我不知道这是否适用于所有数字...但你可以试试这个 7 % 5 = 2。如果从2中减去5,您将获得3 ...这是您需要添加到7的数字。 16 % 5 = 11减去5 = 4 .. 4 + 16 = 20 另一个示例16 % 13 = 3 ... 13-3 = 10 16+10 = 26 26/13 = 2

答案 5 :(得分:0)

这是最快,最干净的方法:

function shift(number, divider) 
{
    return number + (divider - (number % divider)) % divider;
}

它需要数字,并将其向上移动(从我们的单位)分频器到剩余的差,以使其可以被分频器整除。 。 % divider确保如果没有差异,数字不会被完整的除法器推高。