Генерация числа Фибоначчи C - PullRequest
0 голосов
/ 15 февраля 2020

Я практиковал массив в 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;
}

Я знаю, что это глупый вопрос. Если кто-нибудь поможет мне понять жирный шрифт, отмеченный как l oop, я был бы очень благодарен. Заранее спасибо.

1 Ответ

1 голос
/ 15 февраля 2020
for (j = 0;  j < 10;  ++j)
    for (i = 0;  i < j;  ++i)
        numbers[j]  = numbers[j] +numbers[i];

Приведенный выше l oop будет нацелен на конкретную позицию массива и добавит все числа одно за другим с 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
...