朱莉娅代码:
seed = 1234
N = 2
newNum = Int64[]
for i in 1:N
seq = digits(seed*seed, pad=8)
seed = seq[6]*1000+seq[5]*100+seq[4]*10+seq[3]
newNum[i] = seed
end
newNum[2]
Run Code Online (Sandbox Code Playgroud)
错误: https: //i.stack.imgur.com/3p390.png
使用:
\nseed = 1234\nN = 2\nnewNum = Int64[]\nfor i in 1:N\n seq = digits(seed*seed, pad=8)\n seed = seq[6]*1000+seq[5]*100+seq[4]*10+seq[3]\n push!(newNum, seed)\nend\nnewNum[2]\nRun Code Online (Sandbox Code Playgroud)\n或者
\nseed = 1234\nN = 2\nnewNum = Vector{Int64}(undef, N)\nfor i in 1:N\n seq = digits(seed*seed, pad=8)\n seed = seq[6]*1000+seq[5]*100+seq[4]*10+seq[3]\n newNum[i] = seed\nend\nnewNum[2]\nRun Code Online (Sandbox Code Playgroud)\n但是,一般来说,我建议您将此代码包装在一个函数中,否则效率会很低,而且如果您尝试将其作为脚本运行(即不在 REPL 中交互),您将收到错误:
\n\xe2\x94\x8c Warning: Assignment to `seed` in soft scope is ambiguous because a global variable by the same name exists: `seed` will \nbe treated as a new local. Disambiguate by using `local seed` to suppress this warning or `global seed` to assign to the existing global variable.\n\xe2\x94\x94 \nERROR: LoadError: UndefVarError: seed not defined\nRun Code Online (Sandbox Code Playgroud)\n原因是这seed是一个全局变量,您在循环引入的局部范围内重新绑定for。您可能想查看Julia 手册的这一部分以了解更多信息。