Program Deret Bilangan Fibonacci C++


Sebelumnya telah dibahas tentang program C++ untuk mencari bilangan fibonacci yang terbatas pada input bilangan positif saja. Namun, sesungguhnya deret bilangan fibonacci tidak sebatas pada bilangan positif saja, namun juga mencakup bilangan negatif juga.
Dalam matematika, bilangan fibonacci merupakan barisan yang didefinisikan secara rekursif. Barisan ini berawal dari 0 dan 1, kemudian angka berikutnya didapat dengan cara menjumlahkan kedua bilangan yang berurutan sebelumnya.

<img src="fibonacci_cpp.png" alt="fibonacci_cpp">


Bila fungsi bilangan fibonacci adalah 0 maka nilai bilangan fibbonacci adalah 0, bila fungsi bilangan fibonacci negatif adalah -1 maka nilai bilangan fibbonacci adalah -1. Untuk selanjutnya mengikuti pengurangan nilai seperti contoh berikut.

Number: 1 Current: 0 Next: -1
Number: 2 Previous: 0 Current: -1 Result: 0 - (-1) = 0 + 1 = 1
Number: 3 Previous: -1 Current: 1 Result: -1 - 1 = -2
Number: 4 Previous: 1 Current: -2 Result: 1 - (-2) = 1 + 2 = 3
Number: 5 Previous: -2 Current: 3 Result: -2 - 3 = -5
Number: 6 Previous: 3 Current: -5 Result: 3 - (-5) = 3 + 5 = 8
Number: 7 Previous: -5 Current: 8 Result: -5 - 8 = -13

Berikut ini adalah source code C++ untuk mencari deret bilangan fibonacci baik yang bernilai positif maupun negatif.

/*
Program untuk menghitung nilai fibonacci
Bilangan positif dan negatif
Loki Lang
*/
#include <iostream>
using namespace std;

int main()
{
    int n, pred, result, temp;
    cout<<"Masukkan bilangan bulat ";
    cin>>n;
    if (n < 0)
    {
        n *= -1;
        pred = -1;
        result = 0;
        for (int i = 0; i < n; i++)
        {
            temp = result;
            result = pred;
            pred = temp - pred;
            cout<<"Bilangan fibonacci "<<(i+1) * -1<<" ialah "<<result<<endl;
        }
        n *= -1;
    }
    else
    {
        pred = 1;
        result = 0;
        for (int i = 0; i < n; i++)
        {
            temp = result;
            result = pred;
            pred = temp + pred;
            cout<<"Bilangan fibonacci "<<(i+1)<<" ialah "<<result<<endl;
        }
    }
    return(0);
}


Lihat juga program mencari nilai factorial, exponential, dan akar suatu nilai.