Wikipedia

Hasil penelusuran

Rabu, 04 November 2015

program C++ rekursif deret Fibonacci



Berikut adalah program C++ rekursif deret Fibonacci :
/*
      Fungsi rekursif – Deret Fibonacci
      Visual Studio Express 2012
      N.N. Blog
*/

#include <iostream>
using namespace std;
#include <conio.h>

int fibo(int i)
{
      if(i==0)
            return 0;
      else if(i==1)
            return 1;
      else
            //fungsi rekursif
            return fibo(i-1)+fibo(i-2);
}

int main()
{
      int bil;

      cout<<"\tFungsi Rekursif Bilangan Fibonacci"<<endl;
      cout<<"\t=================================="<<endl;        
      cout<<"\nMasukkan bilangan : ";
      cin>>bil;
      //pemanggilan fungsi
      cout<<"Fibonacci("<<bil<<") = "<<fibo(bil);

      _getche();
      return EXIT_SUCCESS;
}


Penjelasan
int fibo(int i)
{
     if(i==0)
           return 0;
     else if(i==1)
           return 1;
     else
           //fungsi rekursif
           return fibo(i-1)+fibo(i-2);
}

Seperti pada output apabila dimasukkan angka 4, maka,




Jadi Fibonacci (4) adalah 3

Output 





Program C++ untuk membuat Deret Fibonacci

Bilangan Fibonacci dalam matematika  yaitu barisan yang didefinisikan secara rekursif sebagai berikut:
barisan ini berawal dari 0 dan 1, kemudian angka berikutnya didapat dengan cara menambahkan kedua bilangan yang berurutan sebelumnya. Dengan aturan ini, maka barisan bilangan Fibonaccci yang pertama adalah:
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946...

Angka 1 = 0
Angka ke-2 = 1
Angka ke-3= angka 1+ Angka ke-2
Angka ke-4 = angka 2+ Angka ke-3
dst….

Barisan bilangan Fibonacci dapat dinyatakan sebagai berikut:
Fn = (x1n – x2n)/ sqrt(5)
dengan
  • Fn adalah bilangan Fibonacci ke-n
  • x1 dan x2 adalah penyelesaian persamaan x2 – x – 1 = 0.
Perbandingan antara Fn+1 dengan Fn hampir selalu sama untuk sebarang nilai n dan mulai nilai n tertentu, perbandingan ini nilainya tetap. Perbandingan itu disebut rasio emas yang nilainya mendekati 1,618.
Codingan program untuk deret Fibonacci dapat saya buat sebagai berikut :
#include <iostream.h>

     int suku, a, b, c;

     int main()
     {
     cout<<"Membuat Deret Fibonacci\n";
     cout<<"Masukkan nilai suku ke-: ";cin>>suku;

     cout<<"Bilangannya adalah: \n";
     a=0;b=1;
    cout<<a<<endl<<b<<endl;
     for(int i=3; i<=suku; i++)
    {
    c = a + b;
    a = b;
    b = c;

     cout<<c<<endl;
     }
    return 0;
     }
 
Bila pada posting sebelumnya saya menggunakan fungsi iteratif, sekarang saya menggunakan fungsi rekursif untuk mencari urutan fibonacci. Dengan fungsi rekursif, apabila bilangan yang dicari urutannya kecil, maka lebih baik menggunakan fungsi rekursif ini. Berikut ini kodenya:

#include <stdio.h>
#include <conio.h>
int fibonacci(int n);
void main()
{
int bil,urfib,ulangi;
do
{
clrscr();
printf("Bilangan fibonacci urutan ke? ");
scanf("%d",&bil);
urfib=fibonacci(bil);
printf("\nUrutan fibonacci ke %d, adalah %d",bil,urfib);
printf("\n\nApakah anda ingin mengulangi?");
printf("\n1. YA");
printf("\n2. TIDAK (keluar) ");
scanf("%d",&ulangi);
}while(ulangi==1);
}

int fibonacci(int n)
{
int fibonac;
if(n==0)
{
return 0;
}
else if(n==1)
{
return 1;
}
else
fibonac=fibonacci(n-1)+fibonacci(n-2);
return (fibonac);
}

2 komentar: