2016-02-24 396 views
-4

我想檢查一個數(7)是否可以被另一個數(5)整除,如果這個數可以被數整除,那麼我需要返回相同的號碼。如果該號碼不能被另一個號碼整除,我需要將它整除並返回更新後的值。檢查一個數是否可​​以被另一個數整除如果不能用Javascript整除

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

這裏,如果條件滿足,那麼我需要返回相同的值。如果條件不滿足,我需要添加所需的數字,並使其接下來可以整除。 (像7不能被5整除,所以我需要添加3到7並返回可被5整除的值10)。

是否存在實現相同的任何數學函數?

+4

的Java無關的JavaScript – epascarello

+0

聽起來像你需要遞歸。 – epascarello

+0

@epascarello爲什麼遞歸? – tucuxi

回答

1

你可以通過使用一個簡單的while循環:

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

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

這裏有一個小提琴:https://jsfiddle.net/rdko8dmb/

3

看來你想,是什麼樣的,是這樣的:

function roundTo(n, d) { 
    return Math.floor((n + d - 1)/d) * d; 
} 

對於n 10和d 5,你會得到10回。對於n 7和d 5,您也會得到10.代碼的作用是將小於除數的值添加到輸入數字,然後除以除數。然後它將除去任何小數部分(Math.floor())並再乘以除數。

2

您可以使用此算法:

i % n = r,其中i = 7n = 5r = 2。然後,製作i = i + (n - r)。即i = 7 + (5-2)10。那麼你可以使用它來爲你的師。

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); 
} 
0

我不知道這是否會爲所有的數字工作...不過你可以試試這個 7 % 5 = 2。如果您從5中減去2,您將得到3 ...這是您需要添加到7的數字。 16 % 5 = 115 = 4 .. 4 + 16 = 20
又如16 % 13 = 3 ... 13-3 = 1016+10 = 2626/13 = 2

+0

不確定爲什麼你投下了它,因爲它是問題的有效答案var i = 7,res = 0; var rem = 7%5;如果(rem> 0)var res = 5-rem; //數字可以被5整除; i + res = 10現在可以被5 }整除} – NinjaCodeMonkey007

相關問題