我正在用JavaScript编写一个程序,该程序计算6位数字的数量,其前3位数字的总和等于后3位数字的总和。因此,尽管只有一个返回正确答案,但我为该问题编写了两种不同的解决方案。
我还写了一个函数sumOfDigits()
,可以简单地计算传递给它的数字的总和。此函数未在此处编写,但可以正常工作。
function count1() {
total=0;
for (i = 100000; i <= 999999; i+=1) {
part = i % 1000;
if ((sumOfDigits(i-part)) == ((sumOfDigits(part)))) {
total+=1;
}
} return total;
}
function count2() {
array = [];
for (i = 100000; i <= 999999; i+=1) {
part = i % 1000;
if ((sumOfDigits(i-part)) == ((sumOfDigits(part)))) {
array.push(i);
}
} return array;
}
该count1()
函数无法正常工作,并返回28作为答案,而count2()
返回数组的函数返回长度为50412的数组,这是正确的答案。有人可以告诉我为什么第一个功能不能正常工作。
该count1
功能的屏幕截图。
您正在使用total
的实现sumOfDigits()
吗?我猜这两个函数都使用相同的global total
。
您应在所有局部变量var
的首次使用时加上前缀,以免将它们视为全局变量,例如:
var total = 0;
编辑:我刚刚确认了这一点。如果sumOfDigits()
使用global total
,则count1()
返回28。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句