Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Функции. Рекурсия c++

RimRy Ученик (180), на голосовании 1 год назад
Последовательностью Фибоначчи называется последовательность, n-й член которой равен сумме предыдущих двух, т.е. Fn = Fn - 1 + Fn - 2, при этом F1 = 1, F2 = 1. Таким образом: F1 = 1, F2 = 1, F3 = F2 + F1 = 1 + 1 = 2, F4 = F3 + F2 = 2 + 1 = 3, F5 = F4 + F3 = 3 + 2 = 5 и так далее. По заданному n вычислить n-ое число Фибоначчи.

Входные данные
На ввод подается единственное число n

Выходные данные
Вывести n-ое число Фибоначчи (Fn)

Пример
входные данные
6
выходные данные
8
Голосование за лучший ответ
Татьяна Просветленный (36498) 1 год назад
Для вычисления n-го числа Фибоначчи можно использовать рекурсию. Вот пример кода на C++, который использует рекурсию для вычисления n-го числа Фибоначчи:
 int fibonacci(int n) { 
if (n <= 1) {
return n;
}
return fibonacci(n-1) + fibonacci(n-2);
}
В этом коде функция fibonacci вызывает саму себя для вычисления двух предыдущих чисел Фибоначчи и возвращает их сумму. Базовый случай - это когда n меньше или равно 1, в этом случае функция возвращает n.
Чтобы вычислить n-е число Фибоначчи, нужно вызвать функцию fibonacci(n). Например, для n=6 результатом будет 8.
 int result = fibonacci(6); // result = 8 
Также можно использовать цикл для вычисления n-го числа Фибоначчи. Вот пример кода на C++, который использует цикл:
 int fibonacci(int n) { 
if (n <= 1) {
return n;
}
int a = 0, b = 1;
for (int i = 2; i <= n; i++) {
int c = a + b;
a = b;
b = c;
}
return b;
}
Этот код начинает с a=0 и b=1, затем в цикле вычисляет следующее число Фибоначчи, сохраняет его в c, затем перемещает a и b на следующие два числа и продолжает цикл до тех пор, пока не достигнет n. В конце функция возвращает b, которое содержит n-е число Фибоначчи.
Чтобы вычислить n-е число Фибоначчи, нужно вызвать функцию fibonacci(n). Например, для n=6 результатом будет 8.
 int result = fibonacci(6); // result = 8 
Афраний Начальник тайной стражи Гуру (3264) 1 год назад
 #include  

int F(int n)
{
return n < 3 ? 1 : F(n-1) + F(n-2);
}


int main()
{
int n;
std::cin >> n;
if(n < 1)
return 1;

std::cout << F(n) << std::endl;

return 0;
}
РеципиентГений (83356) 1 год назад
Глядя на такие "решения", которыми переполнены Ответы, я понимаю, что в России есть две потенциально золотых жилы.
1) Программа школьной информатики.
2) Сайты вопросов-ответов в интернете.
По ходу, пора делать стартап.
Айран Просветленный (27681) 1 год назад
пару дней назад уже вам отвечали.Забыли?
https://otvet.mail.ru/question/235237989
хотя не заметил что вопрос совершенно другой . Там надо было вывести 5ый член последовательности, а сегодня - шестой
Николай ВеселухаВысший разум (383938) 1 год назад
прогресс налицо :)
Похожие вопросы