【发布时间】:2019-05-26 13:00:06
【问题描述】:
我有一个 do/while 循环,它生成 2 到 10 之间的两个数字,然后检查它们的最大公因数。如果最大公因数不等于 1,则生成两个不同的数,直到找到两个除 1 之外没有任何公因数的数。
这大部分时间都会运行,但大约每四次,它就无法生成数字。代码似乎“卡住”了,但我不知道为什么:
JAVASCRIPT
function randomBetween(min, max) {
var ceiling = max + 1;
return Math.floor(Math.random() * (ceiling - min)) + min;
}
function GenerateRandomNumberNoCommonFactorsWithAnother() {
var Numerator;
var Denominator;
var gcd = function gcd(a, b) {
return b ? gcd(b, a % b) : a;
};
do {
Numerator = randomBetween(2, 10);
Denominator = randomBetween(2, 10);
gcd = gcd(Numerator, Denominator);
} while (gcd != 1);
return {
Numerator: Numerator,
Denominator: Denominator,
}
}
var Test = GenerateRandomNumberNoCommonFactorsWithAnother();
$(".Test").html(Test.Numerator);
$(".Test2").html(Test.Denominator);
HTML
<span class="Test"></span>
<br>
<span class="Test2"></span>
JSFiddle:http://jsfiddle.net/190mvbzt/
【问题讨论】:
标签: javascript jquery while-loop do-while