Объясните работу кода - 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увеличивается на единицу.
- Значение переменной
- После окончания цикла выводится сообщение.