Изменить код вызываемой функции для расчета ряда фибоначчи; заменить рекурсию на цикл; добавить вывод на экран - C (СИ)
Формулировка задачи:
Помогите изменить код вызываемой функции для расчета ряда фибоначчи, но заменить рекурсию на цикл, и что бы она выводилась на экране)
что то перечитал все темы но никак правильно не могу с циклом сделать
unsigned long Fibonacci(unsigned n)
{
if (n > 2)
return Fibonacci(n-1) + Fibonacci(n-2);
else
return 1; }Решение задачи: «Изменить код вызываемой функции для расчета ряда фибоначчи; заменить рекурсию на цикл; добавить вывод на экран»
textual
Листинг программы
int n1 = 1, n2 = 1, i, length, fib = 0;
scanf("%d", length);
while (i < length)
{
fib = n1 + n2;
n1 = n2;
n2 = fib;
++i;
}
printf("Fibonacci of %d is: %d", length, fib);
Объяснение кода листинга программы
- Объявлены переменные:
n1,n2,i,length,fib - С помощью
scanfвводится значение переменнойlength - Запускается цикл, который выполняется
lengthраз - Внутри цикла переменная
fibвычисляется как суммаn1иn2 - Значение
n1присваивается переменнойn2 - Значение
n2присваивается переменнойfib - Увеличивается значение переменной
iна 1 - После выполнения цикла выводится на экран строка
Fibonacci of [значение переменнойlength] is: [значение переменнойfib]