0

我正在学习 JavaScript,我正在制作一个有趣的网页。在网页中,我想编写一个脚本,将写入数字 1 到 80,并在这些数字中为 3 的倍数写 text1,为 5 的倍数写文本 2,为 3 和 5 的倍数写文本 15。

请你能告诉我如何去做吗?

谢谢

编辑:

是的,我有一个正在玩的脚本,但无法让它工作:

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 测试。找出倍数通常是通过找到余数来完成的。请记住:

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 回答