Объясните работу кода - C (СИ)
Формулировка задачи:
Вот прога для записи номера числа в последовательности Фибоначчи.
Вопрос в том, что я не могу понять как проходит, по этапно, цикл, как она вычисляет порядковый номер числа в последовательности?
Объясните пожалуйста на пальцах.
Спасибо!
Листинг программы
- #include<stdio.h>
- #include<stdlib.h>
- int main(void)
- {
- //Задается кодировка консольного окна
- system("chcp 1251>nul");
- //Номер числа в последовательности Фибоначчи
- int n;
- //Отображение сообщения
- printf("Введите номер числа:");
- //Считывание значение числа
- scanf_s("%d", &n);
- //Первое и второе число в последовательности
- int a = 1, b = 1;
- //Переменная для оператора цикла
- int k = 3;
- [COLOR="Red"]//Оператор цикла
- while (k <= n)
- {
- b = a + b;//Последнее число
- a = b - a;//Предпоследнее число
- k++;//Новое значение для переменной цикла
- }[/COLOR]
- //Отображение результата
- printf("Число Фибоначчи: %d", b);
- //Задержка закрытия консольного окна
- system("pause>nul");
- return 0;
- }
Решение задачи: «Объясните работу кода»
textual
Листинг программы
- while (k <= n)
- {
- b = a + b;//Последнее число
- printf("b = a + b\t (b = %d)\n", b);
- a = b - a;//Предпоследнее число
- printf("a - b - a\t (a = %d\n\n)", a);
- k++;//Новое значение для переменной цикла
- }
Объяснение кода листинга программы
- Объявлены две переменные типа int -
a
иb
. - Цикл while выполняется до тех пор, пока значение переменной
k
не станет большеn
. - Внутри цикла выполняется следующее:
- Значение переменной
b
присваивается сумме значений переменныхa
иb
. - Выводится сообщение с формулой и значением переменной
b
. - Значение переменной
a
присваивается разности значений переменныхb
иa
. - Выводится сообщение с формулой и значением переменной
a
. - Значение переменной
k
увеличивается на единицу.
- Значение переменной
- После окончания цикла выводится сообщение.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д