Fungsi Rekursif - Faktorial
Contoh Program Fungsi Rekursif - Faktorial |
Dalam pemrograman terdapat konsep fungsi rekursif, yaitu yang memanggil dirinya sendiri, artinya fungsi tersebut dipanggil di dalam tubuh fungsi itu sendiri. Parameter yang dilewatkan berubah sebanyak fungsi itu dipanggil.
Berikut adalah program C++ rekursif untuk
menghitung faktorial dari suatu bilangan :
/*
Fungsi rekursif
– Faktorial
Visual Studio Express
2012
N.N. Blog
*/
#include <iostream>
using namespace std;
#include <conio.h>
int faktorial (int bil)
{
if(bil==1)
return 1;
else
//fungsi rekursif
return bil*faktorial(bil-1);
}
int main ()
{
int n;
cout<<"\tFungsi Rekursif - FAKTORIAL"<<endl;
cout<<"\t==========================="<<endl;
cout<<"\nMasukkan nilai n = ";
cin>>n;
cout<<"\nFaktorial "<<n<<"!=
"<<faktorial(n)<<endl;
_getche();
return EXIT_SUCCESS;
}
Penjelasan
int faktorial (int
bil)
{
if(bil==1)
return 1;
else
return bil*faktorial(bil-1); //rekursif
}
Seperti pada output, apabila dimasukkan angka 4 maka:
- Kondisi pada operasi kondisi pertama akan dicek, karena kondisi bernilai salah maka program akan menjalankan pernyataan “return bil*faktorial(bil-1)”
- Bil bernilai 4, 4*faktorial(4-1)…sekarang kita mempunyai nilai 4, selanjutnya mengalikan dengan rekursif., nilai 4 disimpan terlebih dahulu.
- Rekursif, bil bernilai 3, dicek dengan kondisi pertama, karena masih bernilai salah maka dilanjutkan ke pernyataan selanjutnya, 3*faktorial(3-1)… sekarang kita mempunyai nilai 3, selanjutnya mengalikan dengan rekursif,..sekarang kita punya nilai 4*3…, dan seterusnya, sampai variabel bil bernilai 1…sehingga akan diperoleh perkalian 4*3*2*1 yang menghasilkan 24.
Output
Fungsi Rekursif - FAKTORIAL
===========================
Masukkan nilai n = 4
Faktorial 4!= 24
Klik Like & Share jika postingan ini bermanfaat
Apa tanggapan Anda?
Berikan tanggapan Anda melalui kolom komentar yang telah disediakan.
- Gunakan bahasa yang sopan;
- Saat menjadikan postingan pada blog ini sebagai referensi, jangan lupa mencantumkan sumbernya (link dari blog ini).
Jika blog ini bermanfaat jangan lupa memberikan 'like' atau 'share' untuk mendapatkan update terbaru.
Terima kasih