Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.68/25: Рейтинг темы: голосов - 25, средняя оценка - 4.68
 Аватар для kalonord
28 / 28 / 5
Регистрация: 27.01.2014
Сообщений: 784

Числа Фибоначчи и рекурсия

06.10.2015, 16:38. Показов 4791. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет.

Кто может мне доступно объяснить нахождение числа? Да и вообще, что мы ищем?
Есть ряд: 0, 1, 1, 2, 3, 5, 8, 13, 21... Т.е. число n равно сумме предыдущих чисел. (8 + 13 = 21).
К примеру, код:
C++
1
2
for(int counter = 0; counter <= 10; counter++)
        cout << "fibonacci( " << counter << " ) = " << fibonacci(counter) << endl;
C++
1
2
3
4
5
6
7
unsigned long fibonacci(unsigned long number)
{
    if(number == 0 || number == 1)
        return number;
    else
        return fibonacci(number - 1) + fibonacci(number - 2);
}
Вот, допустим, взять counter = 10; Число Фибоначчи = 55. Каким образом это происходит? Я не понимаю как применяется эта формула: (n - 1) + (n - 2). Если n - это порядковый номер числа Фибоначчи, то почему используём аргумент со значением 10, если на самом деле, число 55 в ряде Фибоначчи является одиннадцатым по счёту (первое число - это ноль)?
Совсем запутался, в общем, кто может прояснить?

Тупил и туплю всё время на циклах, еще и это добавилось, неплохо
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.10.2015, 16:38
Ответы с готовыми решениями:

Рекурсия (Числа Фибоначчи)
Не понимаю, как данная рекурсия складывает числа. Ведь функция дойдет до n=1 и начнет возвращать значения (Первое фото), но функция же не...

рекурсия и массивы: числа Фибоначчи
привет всем ! как с помощью рекурсии с параметрами массива реализовать числа Фибоначчи ? вот что то на клепал #include...

Рекурсия в нахождении числа ряда Фибоначчи.
Лаба: написать программу, находящуую заданный элемент ряда Фибоначчи. Написал: #include &lt;stdio.h&gt; void main() { int M,...

8
2688 / 2260 / 244
Регистрация: 03.07.2012
Сообщений: 8,231
Записей в блоге: 1
06.10.2015, 16:51
Ряд 1,1,2,3,5,8,13,21,34,55 и тд. Здесь "2" считается третьим по порядку числом (а 55 - десятым). Иногда в начале добавляют 0 и его считают нулевым по порядку (чтобы не сбивать остальные).
1
 Аватар для kalonord
28 / 28 / 5
Регистрация: 27.01.2014
Сообщений: 784
06.10.2015, 17:00  [ТС]
zer0mail, а можете объяснить как рекурсивная функция считает число Фибоначчи - 55 по порядковому числу 10 ?
0
2688 / 2260 / 244
Регистрация: 03.07.2012
Сообщений: 8,231
Записей в блоге: 1
06.10.2015, 17:37
Цитата Сообщение от kalonord Посмотреть сообщение
return fibonacci(number - 1) + fibonacci(number - 2);
Вот так
0
 Аватар для kalonord
28 / 28 / 5
Регистрация: 27.01.2014
Сообщений: 784
06.10.2015, 17:41  [ТС]
Цитата Сообщение от zer0mail Посмотреть сообщение
Вот так
Ага, я понял, в голове всё уложилось, спасибо
0
2 / 2 / 1
Регистрация: 06.10.2015
Сообщений: 91
07.10.2015, 00:04
Лучший ответ Сообщение было отмечено kalonord как решение

Решение

Рекурсия в отличии от циклов довольно сложно в голове представить. Лично я на небольшом количестве повторенийих раскладываю поочереди. Получается если заданное число 10, то рекурсия опуститься вглубь функции(функция будет вызывать саму себя) до тогомомента пока не будет выполнен выход по первому условию(номер равен 1). Итого когда дойдет до 0 или 1 функции начнут закрываться с вовращением текущей суммы предыдущих номеру чисел. Короче попробуй на листке разложить функции с передачей номера у уменьшением, как в твоей функции.
0
 Аватар для kalonord
28 / 28 / 5
Регистрация: 27.01.2014
Сообщений: 784
07.10.2015, 00:34  [ТС]
DSpade, спасибо, я разложил на листе бумаги небольшие числа, всё получилось. В голове немного трудно представлять, как функция, вызывает себя же и т.д.
Кстати, неплохая схема, может поможет кому.
Миниатюры
Числа Фибоначчи и рекурсия  
2
 Аватар для kalonord
28 / 28 / 5
Регистрация: 27.01.2014
Сообщений: 784
07.10.2015, 00:37  [ТС]
P.s. fibonacci( 3 ) == 2.
0
0 / 0 / 0
Регистрация: 20.07.2016
Сообщений: 25
20.07.2016, 02:04
Спасибо за картинку, помогла разобраться.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.07.2016, 02:04
Помогаю со студенческими работами здесь

Рекурсия: определить номер и значение числа Фибоначчи, не превышающего заданную величину
Здравствуйте,можете пожалуйста написать код? Вот задание: Определить порядковый номер и значение члена ряда Фибоначчи, не...

По заданному числу Фибоначчи найти предыдущее и следующее числа Фибоначчи
Дано целое число N(&gt;1), которое является числом Фибоначчи: N=Fk. Найти целые числа Fk-1 и Fk+1 - предыдущие и последующее числа...

Набрать с чисел Фибоначчи в интервале от 1 до 100, только просто числа, а также их порядковые номера в ряду Фибоначчи
Помогите с задачкой Набрать с чисел Фибоначчи в интервале от 1 до 100, только просто числа, а также их порядковые номера в ряду...

рекурсия + двоичная система + Фибоначчи
Написать рекурсивную функцию перевода десятичного числа в двоичное и используя ее найти и вывести на печать двоичные коды первых 100 чисел...

Функции. Рекурсия на примере Фибоначчи
Можете начинающему объяснить решен задачи про числа фиибоначи с помощью рекурсии. Вот код // Fibonacci series using recursion ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru