Pemangkatan dengan Rekursif - Iteratif
Bismillahirrahmanirrahim, Assalamu'alaikum Warahmatullah Wabarakaatuh.
Sahabat TIFLearning, kali ini kita akan mencoba membuat kodingan cara memangkatkan sebuah bilangan dengan 2 metode, yakni metode perulangan iteratif (dalam hal ini for) dan metode perulangan rekursif.
Langsung saja, Hasil yang akanj ditampilkan nanti seperti pada gambar dibawah ini:
Untuk kodingannya sendiri bisa teman2 sedot + pahami kodingan dibawah ini:
#include"iostream"
using namespace std;
int pangkat(int x,int y){
if(y>0) return x*pangkat(x,y-1);
else return 1;
}
main(){
int x,y,kali=1;
cout<<"bilangan : "; cin>>x;
cout<<"basis : "; cin>>y;
cout<<"\n--hasil--\n";
cout<<"rekursif : "<<pangkat(x,y)<<endl;
cout<<"iteratif : ";
for(int i=1; i<=y; i++){
kali=kali*x;
}
cout<<kali;
}
using namespace std;
int pangkat(int x,int y){
if(y>0) return x*pangkat(x,y-1);
else return 1;
}
main(){
int x,y,kali=1;
cout<<"bilangan : "; cin>>x;
cout<<"basis : "; cin>>y;
cout<<"\n--hasil--\n";
cout<<"rekursif : "<<pangkat(x,y)<<endl;
cout<<"iteratif : ";
for(int i=1; i<=y; i++){
kali=kali*x;
}
cout<<kali;
}
Sedikit penjelasan, pada pemangkatan dengan perulangan iteratif, sintak for(int i=1; i<=y; i++){ kali=kali*x; } akan melakukan perulangan sebanyak y kali (y adalah basisnya, jadi jika pangkatnya 3, maka perulangannya sebanyak 3kali). Pada perintah selanjutnya, yaitu kali=kali*x merupakan proses pemangkatannya. Diasumsikan nilai bilangan yang akan dipangkatkan adalah 4, dan nilai pangkatnya 3, maka prosesnya sebagai berikut :
- Ulangi proses sebanyak 3kali(proses pertama):
kali=1*4=4;
- Ulangi proses sebanyak 3kali(proses kedua):
kali=4*4=16;
-Ulangi proses sebanyak 3kali(proses ketiga):
kali=16*4=64;
-selesai.
sehingga hasil akhir kali adalah 64.
Sedangkan pada proses rekursif, sama seperti proses iteratif, namun perulangannya dari atas (3) dahulu baru kebawah (1).
Mungkin sekian dulu, semoga kodingan ini berguna untuk teman2 semua. Terima kasih telah mengunjungi blog tiflearning.blogspot.co.id , jangan lupa like dan share ya :)
Tidak ada komentar: