私は、ユークリッドアルゴリズム(2番目のページのhttp://www.math.jacobs-university.de/timorin/PM/continued_fractions.pdf)を使って、2つの数の間で最大の共通分周器(lcd)を見つける簡単なプログラムを作っています。だから私が作成した関数は次のとおりです:予期せぬ結果を与える単純な関数
function largest_common_divider(num1, num2) {
var remainder;
var alpha = num1;
var beta = num2;
for (i = 0; i < 100; i++) {
/* we want to find an "n" such that
n * beta <= alpha < (n + 1) * beta
I initiated n at 1 so that I could use n = 0
as the end condition for my loop */
for (n = 1; n <= 0; n++) {
if (alpha > (n * beta)) {
//still didn't find the n
} else if (alpha == (n * beta)) {
//Hurray! our beta is the lcd
n = 0;
return beta;
} else {
// figure out the remainder
// and set n = 0 to terminate the loop
remainder = alpha - (n - 1) * beta;
n = 0;
}
}
//If we didn't find our lcd, than the previous beta
//become the new alpha (largest number) and the
//the remainder becomes the new beta (smaller number)
alpha = beta;
beta = remainder;
}
}
このプログラムでは、私は正の整数とnum1> numb2だけを期待しています。 15になるように、結果を期待
var a = 45; var b = 15;
var bloopidy = largest_common_divider(a,b);
console.log("The largest common divider between " + a + " and " + b + " is: " +
bloopidy);
が、何私が得たことは、「未定義」である:
ので、この機能をテストするために、私はこれを作りました。私はこれをデバッグするためのすべての小さな知識を使用しましたが、私はできませんでした!私は助けの男が必要です、いずれかが評価されます。ありがとうございました!!
男://そのような愚かな間違い! :Pお返事ありがとうございます!乾杯、素晴らしい一日を持っている:) –