Kolejne liczby ciągu Lucasa oblicza się w taki sam sposób jak liczby Fibonacciego, z tym że początkowe liczby są równe 2 i 1. Każda kolejna liczba Lucasa jest sumą dwóch poprzednich, a zatem początkowe wartości ciągu Lucasa to: 2, 1, 3, 4, 7, 11, 18, 29, 47, 76, 123, 199, 322, 521, 843, 1364, …

Zdefiniuj rekurencyjną funkcję lucas(int n), której wynikiem będzie n-ta liczba Lucasa i przetestuj dla wartości trzeciej i jedenastej z kolei.


Odpowiedź :

Odpowiedź:

#include <iostream>

int lucas(int n){

   if(n == 1){

       return 2;

   }

   if(n == 2){

       return 1;

   }

   return lucas(n - 1) + lucas(n - 2);

}

int main() {

   int n;

   std::cin >> n;

   std::cout << lucas(n);

   return 0;

}

Wyjaśnienie:

Zwykły ciąg Fibonacciego, tylko z zamienionymi początkowymi liczbami