0

私は JavaScript を学んでおり、趣味で Web ページを作成しています。Web ページ内で、1 から 80 までの数字を書き込み、それらの数字内に 3 の倍数の場合は text1 を書き込み、5 の倍数の場合は text2 を書き込み、3 と 5 の倍数の場合は texts15 を書き込むスクリプトを作成したいと考えています。

これを行う方法を教えてください。

ありがとう

編集:

はい、私は遊んでいるスクリプトを持っていますが、それを動作させることはできません:

function myFunction()
{
var x="";
for (var i=1;i<81;i++)
  {
  x=x + i + "<br>";
  }
document.getElementById("Eighty").innerHTML=x;

if (i=i*3)
  {
  x="text";
  }
document.getElementById("Eighty").innerHTML=x;
}

}

4

3 に答える 3

1

あなたの問題は実質的にFizz Buzz testです。倍数を見つけることは、通常、剰余を見つけることによって行われます。それを念頭に置いて:

nominator / denominator = quotient + (remainder / denominator)

examples:
2 / 2 = 1 + ( 0 / 2 )
3 / 2 = 1 + ( 1 / 2 )
4 / 2 = 2 + ( 0 / 2 )

モジュラス演算子は、剰余を見つけるように定義されています。

nominator mod denominator = remainder

from the examples above:
2 mod 2 = 0
3 mod 2 = 1
4 mod 2 = 0

2 の倍数の余りは 0 であることに注意してください。同じことが 3 にも当てはまります。

1 mod 3 = 1  --  1 / 3 = 0 + ( 1 / 3 )
2 mod 3 = 2  --  2 / 3 = 0 + ( 2 / 3 )
3 mod 3 = 0  --  3 / 3 = 1 + ( 0 / 3 )
4 mod 3 = 1  --  4 / 3 = 1 + ( 1 / 3 )
5 mod 3 = 2  --  5 / 3 = 1 + ( 2 / 3 )
6 mod 3 = 0  --  6 / 3 = 2 + ( 0 / 3 )

Javascript で倍数を見つける最も簡単な方法は、剰余 (モジュラス) 演算子を使用することです。

0 % 2; // = 0
1 % 2; // = 1
2 % 2; // = 0 because 2 is divisible with 2
3 % 2; // = 1
4 % 2; // = 0 because 4 is divisible with 2

演算子を使用して剰余を求める場合は、3 と 5 でも同じことができます。結果が 0 の場合、それは均等に割り切れるため、問題の数値の倍数になります。

いつものように; 一連の整数を繰り返すには、for ループを使用し、ループ内のフローをif-statementsで制御します。

これは、開始するための jsFiddle です

于 2013-06-15T10:29:52.533 に答える
0

あなたの要件を正しく理解していれば、次のようなものを探していると思います:

function myFunction(){
    var x="";
    for (var i=1;i<81;i++){
        var a = '';
        if (i%3 == 0 && i%5 != 0) a="text1";
        else if (i%5 != 0 && i%5 == 0) a="text2";
        else if (i%3 == 0 && i%5 == 0) a="text3";
        x=(a == '')? (x + i + "<br>"): (x + a + "<br>");
    }
    document.getElementById("Eighty").innerHTML=x;
}

お知らせください。

于 2013-06-15T10:52:32.470 に答える
0

モジュラス演算子を使用して、数値が別の数値で割り切れるかどうかを確認できます%

c = a % b;

この演算子は、除算の余りを返しますa / b。その剰余がゼロの場合、aは の倍数ですb

于 2013-06-15T10:30:06.453 に答える