Program C++ untuk membuat Deret Fibonacci || algoritma Pemrograman
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 :
/* Program Menghitung deret fibonacci */
#include <stdio.h>
long int fibonacci (int x);
main()
{
int n;
long int hasil;
printf(“Program Menghitung deret fibonacci \n”);
printf(“Deret ke: “);
scanf(“%d”,&n);
hasil=Fibonacci(n);
printf(“Deret Fibonacci (%d) adalah %d \n”,n,hasil);
}
long int fibonacci(int x)
{
long int fibo;
if(x==1 || x==2)
return 1;
else
{
fibo=fibonacci(x-1)+fibonacci(x-2);
return fibo;
}
}
Program di atas adalah program yang digunakan untuk mencari deret fibonacci. Contoh 0,1,1,2,3,5 dimana tiap 2 angkanya ditambahkan lalu ditempatkan pada deret berikutnya begitu pula seterusnya. Sehingga pada program di atas kita gunakan fungsi perulangan yaitu for dilanjutkan dengan fungsi if atau percabangan dengan syarat (i<2) jika ya maka akan menampilkan nilai i, sedangkan tidak akan menampilkan hasil dari ((i-2)+(i-1)) dimana i adalah angka yang akan terus di ulang sampai dengan batasnya. Langkah selanjutnya kita tinggal menampilkan hasil dari percabangan di atas dengan perulangan atau fungsi if, agar hasilnya dapat berbentuk sebagai deret fibonacci tidah hanya menampilkan 1 hasil saja.
/*
Membuat deret bilangan fibonacci
Mengetahui jumlah dari deret bilangan fibonacci yang diinginkan
/*
Membuat deret bilangan fibonacci
Mengetahui jumlah dari deret bilangan fibonacci yang diinginkan
*/
int main (){
int i; //variabel counter perulangan
int a = 0; //variabel bilangan ke 1
int b = 1; //variabel bilangan ke 2
int c; //variabel hasil jumlah dari dua bilangan sebelumnya
int mau; //banyak bilangan yang diinginkan dalam deret
int jumlah=1; //jumlah awal -> bilangan ke 1 + bilangan ke 2 (0+1=1)
printf ("masukan banyaknya baris fibonaci yang diinginkan: ");
//user diminta memasukan banyaknya bilangan yang diinginkan dalam baris
scanf ("%d",&mau); //user memberi masukan dalam bentuk integer
printf("\n");
printf ("%d ",a); //mencetak bilangan awal (ke 1)
printf ("%d ",b); //mencetak bilangan ke 2
for (i=0;i<mau-2;i++){ //pengulangan
c=a+b;
//varibel c, hasil dari penjumlahan dua bilangan sebelumnya(a+b)
printf ("%d ",c);
//mencetak hasil jumlah dari dua bilangan sebelumnya [c]
jumlah = jumlah + c;
//penjumlahan menghitung jumlah keseluruhan bilangan dalam deret
a=b;
//variabel a berubah nilai menjadi nilai pada variabel b
b=c;
//variabel b berubah nilai menjadi nilai pada variabel c
}
printf ("\n\njumlah deret adalah %d",jumlah); //mencetak hasil penjumlahan keseluruhan bilangan dalam deret
return 0;
}
*/
int main (){
int i; //variabel counter perulangan
int a = 0; //variabel bilangan ke 1
int b = 1; //variabel bilangan ke 2
int c; //variabel hasil jumlah dari dua bilangan sebelumnya
int mau; //banyak bilangan yang diinginkan dalam deret
int jumlah=1; //jumlah awal -> bilangan ke 1 + bilangan ke 2 (0+1=1)
printf ("masukan banyaknya baris fibonaci yang diinginkan: ");
//user diminta memasukan banyaknya bilangan yang diinginkan dalam baris
scanf ("%d",&mau); //user memberi masukan dalam bentuk integer
printf("\n");
printf ("%d ",a); //mencetak bilangan awal (ke 1)
printf ("%d ",b); //mencetak bilangan ke 2
for (i=0;i<mau-2;i++){ //pengulangan
c=a+b;
//varibel c, hasil dari penjumlahan dua bilangan sebelumnya(a+b)
printf ("%d ",c);
//mencetak hasil jumlah dari dua bilangan sebelumnya 1
jumlah = jumlah + c;
//penjumlahan menghitung jumlah keseluruhan bilangan dalam deret
a=b;
//variabel a berubah nilai menjadi nilai pada variabel b
b=c;
//variabel b berubah nilai menjadi nilai pada variabel c
}
printf ("\n\njumlah deret adalah %d",jumlah); //mencetak hasil penjumlahan keseluruhan bilangan dalam deret
return 0;
}
terimakasih atas infonya
BalasHapustimah solder