当您一开始不知道数组的尺寸时,如何在Julia中初始化数组

时间:2019-05-17 18:23:48

标签: julia

我正在尝试计算斐波那契数列,直到小于4*10^6的项为止。一开始不知道何时停止时,如何定义f数组的尺寸?在这种情况下,我通过反复试验f = [1:32;]进行了定义。

k = 32
f = [1:k;]
for i in 1:k
    if i < 3
        f[i] = i
    elseif f[i] < 4*10^6
        f[i] = f[i-1] + f[i-2]
    else
        break
    end
end

1 个答案:

答案 0 :(得分:2)

您不必预先定义它。

只需使用push!

f = [1, 2]
while true
    fi = f[end] + f[end-1]
    fi < 4*10^6 ? push!(f, fi) : break
end

旁注:对于斐波那契数列,使用四舍五入部分的Wikipedia中给出的公式来计算k相对容易。同样,通常您将f[2]定义为等于1,而不是问题中的2