Числа Фибоначчи c++
Последовательность чисел Фибоначчи определяется следующим образом: F1 = F2 = 1, Fn + 1 = Fn + Fn - 1. Напишите программу для вычисления n-го члена последовательности.
Входные данные
Вводится единственное число — n
Выходные данные
Выведите n-й член последовательности Фибоначчи
Пример
входные данные
5
выходные данные
5
По дате
По Рейтингу
12345678910111213141516
#include <iostream>
using namespace std;
int main()
{
int a[3] = { 0,0,1 };
int n;
cin >> n;
while (--n)
{
a[0] = a[1];
a[1] = a[2];
a[2] = a[0] + a[1];
}
cout << a[2];
}
1234567891011
#include <iostream>
#include <functional>
using namespace std;
int main() {
function<unsigned(unsigned)> fib = [&](unsigned n) {
return n <= 1 ? n : fib(n - 1) + fib(n - 2);
};
unsigned n;
cin >> n;
cout << fib(n) << '\n';
}
P.S. Вообще-то числа Фибоначчи начинаются о 0, а не с 1, и поэтому пятым должно быть значение 3. Но вам нужно чтобы 5, и я сделал 5.
1234567
unsigned long fib(unsigned n) {
unsigned long tmp[4]{0, 0, 0, 1};
for (unsigned i = 1; i <= n; ++i) {
tmp[i & 3] = tmp[(i + 2) & 3] + tmp[(i + 3) & 3];
}
return tmp[n & 3];
}
12345678
#include <gmpxx.h>
mpz_class fibo(unsigned n, mpz_class a = 0, mpz_class b = 1) {
if (n == 1) return b;
return fibo(n - 1, b, a + b);
}
Написать программу, вычисляющую последовательность чисел Фибоначи до n-го числа. Число вводить с клавиатуры. На C++ - посмотри эту тему
Больше по теме