具有唯一正方形的NaN结果

NaN Result with unique squares

本文关键字:NaN 结果 正方形 唯一      更新时间:2023-09-26

我正在用Javascript编写一个函数,该函数将接受一个数字,然后返回一个边长为那么长的正方形中有多少个正方形。例如,通过1会得到1,2会得到5,3会得到14,依此类推。问题是,我得到了楠的结果。除了一个数字,我不确定它会从哪里得到什么。

function a (n)
{
if (n > 0)
{
    var total = n*n;
    total += a(n-1);
    return (total);
}
}
document.write(a(10));

除了一个数字,我不确定它会从哪里得到什么。

您的基本案例丢失,它返回undefined。尝试

function a(n) {
    if (n > 0)
        return n*n + a(n-1);
    else
        return 0;
}

这是因为if (n > 0)。如果不是这样,函数将返回void。所以将0返回到您的其他上。

function a (n)
{
    if (n > 0)
    {
        var total = n*n;
        total += a(n-1);
        return total;
    }
    else
    {
        return 0;
    }
}
console.log(a(10));

您已经有了两个很好的答案。我只是想让你意识到用更面向对象的风格写作。如果事情变得更加复杂,则更容易将变量和函数组合在一起,并使它们远离所有其他内容。我会写这样的东西来保持它的组织:

var a = {
    total: 0,
    sides: function (n) {
        if (n > 0) {
            this.total = n * n;
            this.total += this.sides(n - 1);
            return this.total;
        } else {
            return 0
        }
    }
}
a.sides(5);
alert(a.total);