Recursive
- Pengertian Recursive
Recursive, dalam konteks pemrograman, mengacu pada suatu konsep di mana
sebuah fungsi atau algoritma memanggil dirinya sendiri secara berulang untuk
memecahkan masalah yang lebih besar menjadi masalah yang lebih kecil dan
lebih terkelola.
Untuk merancang algoritma recursive untuk masalah yang
diberikan, akan berguna untuk memikirkan berbagai cara kita dapat membagi
masalah ini untuk mendefinisikan masalah yang memiliki struktur umum yang
sama dengan masalah aslinya. Proses ini terkadang berarti kita perlu
mendefinisikan kembali masalah asli untuk memfasilitasi submasalah yang
tampak serupa.
Kita dapat memakai contoh dari operasi faktorial yang biasa kita pelajari
dalam matematika.
Dalam matematika, faktorial adalah hasil perkalian menaik dan ditulis dengan tanda seru ” ! “.
Sebagai contoh, 4 faktorial ditulis dengan 4!, dan nilainya adalah 1 x 2 x
3 x 4 = 24, atau 7 faktorial ditulis dengan 7! = 1 x 2 x 3 x 4 x 5 x 6 x 7
= 5040.
- Contoh Program Recursive
Penjumlahan :
#include <iostream>
using namespace std;
int jumlrecc(int x, int y)
{
int hslrecc;
if(x == 0)
{
hslrecc = y;
}else
{
hslrecc = jumlrecc (x-1,y)+1;
}
return hslrecc;
}
// Kamus
int a,b;
int HSL;
int jumlrecc(int a, int b);
int main ()
{
cout << " Penjumlahan Menggunakan Rekursif "<<endl;
cout << " Masukkan angka 1 = ";
cin>>a;
cout << " Masukkan angka 2 = ";
cin>>b;
cout << "
Hasil penjumlahan rekursif = " <<jumlrecc(a,b)<<endl;
}
hasil :
Perkalian
#include <iostream>
using namespace std;
int factorial(int a) {
if ((a==0)||(a==1))
{
return 1;
}
else
{
return a*factorial(a-1);
}
}
int main()
{
int a;
cout << "Program Menampilkan Deret Nilai Faktorial" << endl;
cout << "Masukan nilai factorial : ";
cin >> a; //imputan faktorial
cout << endl;
cout << "\n\nRekursif --> Hasil perkalian semua nilai dari " << a << "! = " << factorial (a); //pemanggilan dan menampilkan faktorial
return 0;
}
}
hasil :
Perpangkatan
#include <iostream>
using namespace std;
// Fungsi rekursif untuk perpangkatan
double perpangkatan(double basis, int pangkat) {
// Basis dari rekursi: pangkat 0 selalu menghasilkan 1
if (pangkat == 0) {
return 1;
}
// Kasus umum: pangkat > 0
// Pangkat genap: hasil = (basis ^ (pangkat / 2)) ^ 2
if (pangkat % 2 == 0) {
double half_power = perpangkatan(basis, pangkat / 2);
return half_power * half_power;
}
// Pangkat ganjil: hasil = basis * (basis ^ (pangkat - 1))
else {
return basis * perpangkatan(basis, pangkat - 1);
}
}
int main() {
double basis;
int pangkat;
cout << "Masukkan basis: ";
cin >> basis;
cout << "Masukkan pangkat: ";
cin >> pangkat;
// Memanggil fungsi perpangkatan dan menampilkan hasilnya
double hasil = perpangkatan(basis, pangkat);
cout << "Hasil perpangkatan: " << hasil << endl;
return 0;
}
Hasil :
Comments
Post a Comment