You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript序列函数中整数x的初始值应设置为多少?

问题:修正sequence函数的x初始值

以下是一个简单函数:

function sequence(a,b,c,d){
    var x = 0;
    var y = 0;
    for(var i = a; i<=b; i++){
        y = eval(c);
        x = eval(d);
    }
    return x;
}

参数说明:

  • a、b必须为整数
  • c、d必须为字符串

调用该函数求1到5的和:

sequence(1,5,"i","x+y")

结果:

15

调用该函数求1到5的积:

sequence(1,5,"i","x*y")

结果:

0

问题出在代码中的var x = 0;,请问整数x的初始值应该设为多少?

补充测试结果:

sequence(1,5,"i","x+y") >>> 15
sequence(1,5,"i","x*y") >>> 0
sequence(1,5,"i","x-y") >>> -15
sequence(1,5,"i","x/y") >>> 0
sequence(1,5,"i","x**y") >>> 0
sequence(1,5,"i","x%y") >>> 0

x的初始值应该设为1。

原因很直接:乘法、幂运算这类操作的单位元是1——任何数和1相乘/做幂运算,结果都是自身。现在初始值设为0,第一次循环时xy=01=0,之后所有乘法操作都基于0,自然出不来正确的乘积。

改成1之后,求积时第一次循环x=11=1,第二次12=2,直到第五次循环后就能得到120的正确结果;同时求和操作也不受影响:原来从0开始累加是0+1+2+3+4+5=15,从1开始的话是1+1+2+3+4+5=15,结果完全一致。另外像减法、除法、取模这类运算,初始值1也能让逻辑更合理,不会出现0导致的异常结果。

内容的提问来源于stack exchange,提问作者HuMaNBeinG69420

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 20:42:09