Laman

Senin, 12 Januari 2015

Faktorial Rekursif C++ [Coding]

Pada program faktorial ini, ditampilkan hasil faktorial dari suatu angka yang diinputkan. Faktorial itu sendiri adalah hasil kali bilangan asli berurutan dari 1 sampai dengan n. Untuk setiap bilangan asli n, didefinisikan n! = 1 x 2 x 3 x … x (n-2) x (n-1) x n. Output programnya adalah sebagai berikut :

dan inilah source codenya : 

----------------------------------------------------------------- #include < iostream>
using namespace std;

int faktorial (int bil)
{   int total;
    if (bil==0) return 1;
    else if (bil < 0) return 0;
    else total=bil*faktorial(bil-1);
    return total;
}
int main()
{   int n, i;
    cout<<" \n============= FAKTORIAL ============\n";
    cout<<" Input bilangan yang akan difaktorialkan: "; cin>>n;
    cout<<" hasil dari "<< n << "!" << "=";
    for(i=1; i< n ; i++ )
    {
        cout<< i << "*";
    }
    if(n>0 && n!=1) cout<< n << "=" << faktorial(n) << endl;
    else cout<< faktorial(n) << endl;
}

-----------------------------------------------------------------

Untuk mempermudah user melihat proses perkalian dari faktorial tersebut maka dibuat suatu code tertentu yang menggunakan pernyataan for. Pertama inisialisasi i=1, jika i kurang dari n, maka eksekusi pernyataan di dalam for dengan increment i. For ini nantinya akan mengoutput tampilan contohnya sebagai berikut: 7!=1*2*3*4*5*6*7. Digunakan for karena dibutuhkan perulangan untuk menampilkan perkalian dalam faktorial tersebut. Kemudian untuk hasil akhirnya baru dilakukan pemanggilan fungsi faktorial.

Di dalam fungsi faktorial diproses, jika bilangan yang diinput 0, maka nilai yang akan dikembalikan adalah 1, jika bilangan yang diinput kurang dari 0 atau negatif maka nilai yang akan dikembalikan adalah 0, jika tidak keduanya maka masuk ke pernyataan else dan masuk ke rumus total=bil*faktorial(bil-1) yang merupakan rekursif (pemanggilan fungsi di dalam fungsi). Proses yang terjadi misal bilangan yang diinput sebesar 7 adalah sebagai berikut :
total=7*faktorial(6)=7*720=5040
total=6*faktorial(5)=6*120=720
total=5*faktorial(4)=5*24=120
total=4*faktorial(3)=4*6=24
total=3*faktorial(2)=3*2=6
total=2*faktorial(1)=2.    

Yang perlu diingat dalam belajar programming adalah kita harus sering-sering latihan, latihan terus, terus latihan.. matangkan algoritma, coding, uji program, perbaiki and believe in yourself! Fighting! :))
 
-keep calm and CODING- 

Tidak ada komentar:

Posting Komentar

read, like, and comment please :D

Share It...