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
Tidak ada komentar:
Posting Komentar