我使用以下代碼來計算由用戶提供的三個數字的GCD:從GCD計算刪除第三輸入如果留空
$('#calc').click(function(){
Math.GCD = function(numbers) {
for (var i = 1 ; i < numbers.length ; i++){
numbers[0] = twogcd(numbers[0], numbers[i]);
}
return numbers[0];
function twogcd(first, second) {
if (first < 0) first = -first;
if (second < 0) second = -second;
if (second > first) {var temp = first; first = second; second = temp;}
while (true) {
first %= second;
if (first == 0) return second;
second %= first;
if (second == 0) return first;
}
}
};
Math.LCM = function(first,second) {
return first * (second/this.GCD(first, second));
};
var first = document.getElementById("first").value;
var second = document.getElementById("second").value;
var third = document.getElementById("third").value;
var numbers = [first,second,third];
var GCDresult = Math.GCD(numbers);
alert(GCDresult);
});
與HTML:
<FORM NAME="calc" method="POST">
<button TYPE="button" ID="calc">CALC</button>
<input type="text" name="stuff[]" class="input-field" id="first"/>
<input type="text" name="stuff[]" class="input-field" id="second"/>
<input type="text" name="stuff[]" class="input-field" id="third"/>
</FORM>
然而,我希望此表格根據用戶輸入的內容來計算2和3數字的GCD。因此,如果一個字段留空,那麼null
字段將被忽略,並且GCD計算將繼續進行兩個輸入。但是,我不能相對於JavaScript來說不熟悉如何排除空白字段。
小提琴:https://jsfiddle.net/tjj7won4/40/
我怎麼可能改變的代碼考慮到這一點?
怎麼樣的LCM功能? 'Math.LCM =函數(第一,第二){返回第一*(第二/ this.GCD(第一,第二)); };'我無法弄清楚如何將它擴展到兩個或三個數字場景。 – newbie2015
這應該有所幫助:http://stackoverflow.com/questions/31302054/how-to-find-the-least-common-multiple-of-a-range-of-numbers# – smirfan