此初学者javascript数学问题的代码有什么问题?

时间:2019-10-26 06:36:12

标签: javascript

我正在尝试编写以下问题的解决方案,但遇到了一些困难:

如果我们列出所有低于10的自然数,这些自然数是3或5的倍数,则得到3、5、6和9。这些倍数的总和为23。

完成解决方案,使其返回传入的数字以下3或5的所有倍数之和。

注意:如果数字是3和5的倍数,则只需将其计数一次。

这是我拥有的代码:

(defcustom dse/package-menu/package-column-width 32
  "Column width of package name in list-packages menu."
  :type 'number :group 'package)
(defcustom dse/package-menu/archive-column-width 12
  "Column width of archive name in list-packages menu."
  :type 'number :group 'package)
(defun dse/package-menu/fix-column-widths ()
  (let ((tlf (append tabulated-list-format nil)))
    (setf (cadr (assoc "Package" tlf)) dse/package-menu/package-column-width)
    (setf (cadr (assoc "Archive" tlf)) dse/package-menu/archive-column-width)
    (setq tabulated-list-format (vconcat tlf))))

(add-hook 'package-menu-mode-hook #'dse/package-menu/fix-column-widths)

谢谢!

1 个答案:

答案 0 :(得分:0)

您只需要进行一次测试:如果满足i % 3 === 0 || i % 5 === 0,则将i添加到sum

确保不要隐式创建全局变量; i = 0将在严格模式下引发错误。首次使用变量时,务必声明它们。

function solution(number) {
  var sum = 0;
  for (let i = 0; i < number; i++) {
    if (i % 3 === 0 || i % 5 === 0) {
      sum += i;
    }
  }
  return sum;
}

console.log(solution(10));

您还需要将分号放在for循环声明中,而不要放在逗号中。