ここにthe challengeへのリンクです。数値が2つのフィボナッチ数の乗算と等しいかどうかを調べる
ランダムに渡された数字が2つの連続したフィボナッチの乗算と等しいかどうかをテストすることです。
function productFib(prod) {
var x = []
var z;
var a = 0
var b = 1
var c = 7
var h = 1000
while (c < 100) {
var t = a + b
var a = b
var b = t
x.push(t)
c++
}
for (var i = 0; i < h; i++) {
if (prod = x[i] * x[i + 1]) {
z = [x[i], x[i + 1], true]
} else {
z = [x[i], x[i + 1], false]
}
}
return z
}
まず、フィボナッチ数を生成する関数を作成してから、配列に渡しています。これはテストされているので、問題はないと思います。次に、forループを作成して、2つの数値を掛け合わせて、それらが乱数と等しいかどうかをチェックします。
少なくともそれは私の考えですが、[1, 2, true]
または[undefined]
のような結果が毎回続きます。
'のprod = xに詳述されている[I] * X [I + 1]'おそらく '='の代わりに '=='を使うべきです。 –
はい、私は完全に忘れました - ありがとう。私はまだ上書きする方法(zの値を設定する)を理解することができません - それは未定義を返す理由だと推測します –
その2番目のループのすべての反復で 'z'を上書きしています。一度に 'true'で値を取得した可能性は十分ありますが、' false'で返されることはあります。 – Bergi