项目欧拉#1.我总是把答案弄错了100,我不知道为什么(写在F#中)

Van*_*Man 5 f# computer-science

我是第一年的CS学生,没有编程方面的先验知识.我被建议解决项目欧拉的问题,并设法解决(几乎)第一个问题.

它声明您必须将所有数字相加,即3或5(或两者)的倍数.

我在F#中的代码:

let mutable n = 0
for i in 0..1000 do
  if (i % 3 = 0) || (i % 5 = 0) then
    n <- i + n

printfn "%A" n
Run Code Online (Sandbox Code Playgroud)

当这个运行时,我得到答案234168,这是真正的答案100.
有什么建议吗?

jpi*_*son 1

发布此问题的答案,以便其他人更容易从错误中吸取教训。

let mutable n = 0
for i in 0..999 do
  if (i % 3 = 0) || (i % 5 = 0) then
    n <- i + n

printfn "%A" n
Run Code Online (Sandbox Code Playgroud)

值得赞扬的是 JJJ 给出了最初的提示,Guy Coder 指出了更实用的方法在 F# 中会更惯用。