生成斐波那契数为C

问题描述 投票:-2回答:1

我在C中练习数组。我发现下面提到的代码。


int main(void)
{
    int  numbers[10] = { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
    int  i, j;

    **for (j = 0;  j < 10;  ++j)
        for (i = 0;  i < j;  ++i)
            numbers[j]  = numbers[j] +numbers[i];**

    for (j = 0;  j < 10;  ++j)
        printf("%i ", numbers[j]);

    printf("\n");

    return 0;
}

我知道这是一个愚蠢的问题。如果有人帮助我理解标记为循环的粗体,我将不胜感激。预先感谢。

c arrays fibonacci
1个回答
1
投票
for (j = 0;  j < 10;  ++j)
    for (i = 0;  i < j;  ++i)
        numbers[j]  = numbers[j] +numbers[i];

上述循环将以数组的特定位置为目标,并将所有数字从第0个位置一一加到所选位置。

最终您不会生成斐波那契数列。


j =0
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0

j = 1
       1, 1, 0, 0, 0, 0, 0, 0, 0, 0

j = 2
       1, 1, 2, 0, 0, 0, 0, 0, 0, 0

j = 3
       1, 1, 2, 4, 0, 0, 0, 0, 0, 0

j = 4
       1, 1, 2, 4, 8, 0, 0, 0, 0, 0

...so on
© www.soinside.com 2019 - 2024. All rights reserved.