表中的 Javascript 乘数 - 基本

标签 javascript math

我是 JavaScript 新手。我想在 Javascript 中使用 prompt() 制作一个乘法器来获取数字 n,这是我们的乘法器,我想将从 1 到 n 的所有数字与 n 数字相乘。 示例:

如果n=4

然后为了奖励消除所有相同的产品,所以我们认为 23 = 32,它应该看起来像这样:

所以,到目前为止我的代码:

// JavaScript Document

function TableOn() { document.write('<table border="1">'); }
function TableOff() { document.write('</table>') }
function TrOn() { document.write('<tr>'); }
function TrOff() { document.write('</tr>'); }
function TdOn() { document.write('<td>'); }
function TdOff() { document.write('</td>'); }
function Izvrsi() {
    var n;
    n = prompt('Insert the multiplayer (n)');
    script0 = TableOn();
    for (var i = 0; i <= n; i++) {
        script1 = TrOn();
        /*for(var j=0;j<=n;j++)
            {
                script2 = TdOn();
                document.write(j * n + ' ');
                script6 = TdOff();
            }*/
        script2 = TdOn();
        document.write(i + ' ');
        script3 = TdOff();
        script4 = TrOff();
    }
    for (var j = 0; j <= n; j++) {
        script11 = TrOn();
        script2 = TdOn();
        document.write(j * n + ' ');
        script6 = TdOff();
        script12 = TrOff();
    }
    script5 = TableOff();
}

我可能做得不对,你能帮我吗?

最佳答案

首先,您可以调用函数而不将结果分配给任何东西。由于您没有对 script0 到 script12 执行任何操作,因此您不妨完全忽略它们。让我们修复缩进。

function Izvrsi()
{
    var n;
    n=prompt('Insert the multiplayer (n)');
    TableOn();
    for(var i=0;i<=n;i++)
    {
        TrOn();
        /*for(var j=0;j<=n;j++)
        {
            TdOn();
            document.write(j * n + ' ');
            TdOff();
        }*/
        TdOn();
        document.write(i + ' ');
        TdOff();
        TrOff();
    }
    for(var j=0;j<=n;j++)
    {
        TrOn();
        TdOn();
        document.write(j * n + ' ');
        TdOff();
        TrOff();
    }
    TableOff();
}

enter image description here

运行此命令,该表只有一列宽。这是有道理的,因为您只在每个 tr 内写入一个 td。如果取消中间部分的注释,您将获得所需的正方形。

function Izvrsi()
{
    var n;
    n=prompt('Insert the multiplayer (n)');
    TableOn();
    for(var i=0;i<=n;i++)
    {
        TrOn();
        for(var j=0;j<=n;j++)
        {
            TdOn();
            document.write(j * n + ' ');
            TdOff();
        }
        TdOn();
        document.write(i + ' ');
        TdOff();
        TrOff();
    }
    for(var j=0;j<=n;j++)
    {
        TrOn();
        TdOn();
        document.write(j * n + ' ');
        TdOff();
        TrOff();
    }

    TableOff();
}

enter image description here

数字看起来不正确,因为您正在编写 j * n(即当前列的索引)乘以最大乘数。相反,写成j * i,即当前列乘以当前行。当我们这样做时,让我们删除第二个 for block ,因为它只是在末尾添加了一列垃圾。

function Izvrsi()
{
    var n;
    n=prompt('Insert the multiplayer (n)');
    TableOn();
    for(var i=0;i<=n;i++)
    {
        TrOn();
        for(var j=0;j<=n;j++)
        {
            TdOn();
            document.write(j * i + ' ');
            TdOff();
        }
        TdOn();
        document.write(i + ' ');
        TdOff();
        TrOff();
    }

    TableOff();
}

enter image description here

这看起来不错,除了表格从 0 而不是 1 开始,并且行号出现在右侧而不是左侧。将 document.write(i + ' '); 移至 for 循环的前面,并将初始 i 和 j 值更改为 1。

function Izvrsi()
{
    var n;
    n=prompt('Insert the multiplayer (n)');
    TableOn();
    for(var i=1;i<=n;i++)
    {
        TrOn();
        TdOn();
        document.write(i + ' ');
        TdOff();
        for(var j=1;j<=n;j++)
        {
            TdOn();
            document.write(j * i + ' ');
            TdOff();
        }
        TrOff();
    }

    TableOff();
}

enter image description here

您需要一个单独的循环来创建列号。相当简单 - 只需写一个空格和从 1 到 n 的数字。

function Izvrsi()
{
    var n;
    n=prompt('Insert the multiplayer (n)');
    TableOn();

    //create column numbers
    TrOn();
    TdOn(); document.write(' '); TdOff();
    for(var i=1;i<=n;i++){
        TdOn(); document.write(i + ' '); TdOff();
    }
    TrOff();

    for(var i=1;i<=n;i++)
    {
        TrOn();
        TdOn();
        document.write(i + ' ');
        TdOff();
        for(var j=1;j<=n;j++)
        {
            TdOn();
            document.write(j * i + ' ');
            TdOff();
        }
        TrOff();
    }

    TableOff();
}

enter image description here

最后,您可以通过在 for(var j... 循环中执行检查来消除重复的产品。如果 i 小于 j,则无需编写任何内容。

function Izvrsi()
{
    var n;
    n=prompt('Insert the multiplayer (n)');
    TableOn();

    //create column numbers
    TrOn();
    TdOn(); document.write(' '); TdOff();
    for(var i=1;i<=n;i++){
        TdOn(); document.write(i + ' '); TdOff();
    }
    TrOff();

    for(var i=1;i<=n;i++)
    {
        TrOn();
        TdOn();
        document.write(i + ' ');
        TdOff();
        for(var j=1;j<=n;j++)
        {
            TdOn();
            if (i < j){
                document.write(' ');
            }
            else{
                document.write(j * i + ' ');
            }
            TdOff();
        }
        TrOff();
    }

    TableOff();
}

enter image description here

关于表中的 Javascript 乘数 - 基本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21684935/

相关文章:

math - 在 MATLAB 中求解矩阵?

algorithm - 四面体边缘测试

javascript - HTML Form, onclick ="this.disabled=true;this.value=' Sending, please wait.. .'; return false;"禁用按钮但从不提交表单

javascript - Swing html中的Java回调

java - 多项计划

php - php中基于正态分布的年龄匹配算法

c# - 如何将 'hermite' 曲线转换为贝塞尔曲线?

javascript - 在javascript中只计算工作时间

javascript - 在 JavaScript 中实现撤消功能

javascript - jScrollpane 滚动条不工作