Top.Mail.Ru
Ответы

Числа Фибоначчи 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++ - посмотри эту тему