Codingan rekursif

Sabtu, 19 Desember 2009

#include < iostream.h >

class rekursif{
private:
int a;

public:
rekursif(){
a=0;
}

void setA(int a){
a=a;
};

int getA(){
return 0;
};

void cetak(int a);
void cetak2(int a);
void fibo(int a,int b,int n);
int fibo2(int a);
int paskal(int i,int j);
int fakt(int a);
void biner(int n);
};


void rekursif::cetak(int a)
{
if(a<1) return;
else
{
cout << a;
cetak(a-1);
}
}

void rekursif::cetak2(int a)
{
if(a<1) return;
else
{
cetak2(a-1);
cout << a;
}
}

void rekursif::fibo(int a,int b,int n)
{
if(n==0) return;
else
{
cout << b;
fibo(b,b+a,n-1);
}
}

int rekursif::fibo2(int a)
{
if(a==1 || a==2) return 1;
return fibo2(a-1)+fibo2(a-2);
}

int rekursif::paskal(int i,int j)
{
if(j==0 || j==i) return 1;
return paskal(i-1,j-1)+paskal(i-1,j);
}

int rekursif::fakt(int a)
{
if(a==0)return 0;
if(a==1)return 1;
return a * fakt(a-1);
}

void rekursif::biner(int n){
if(n<2) cout << n;
else
{
biner(n/2);
cout << n%2;
}
}

void main()
{
int i,j,x;
rekursif obj;

cout << "masukkan angka = ";
cin >> x;
cin.sync(); cin.clear();
obj.setA(x);
cout << endl << "cetak terbalik dari " << x << endl;
obj.cetak(x);
cout << endl << endl << "cetak urut sampai " << x << endl;
obj.cetak2(x);
cout << endl << endl << "deret fibonacci sebanyak " << x << endl;
obj.fibo(0,1,x);
cout << endl << endl << "fibonacci ke- " << x << endl;
cout << obj.fibo2(x);
cout << endl << endl << "segitiga paskal" << x << "baris" << endl;
for(i=0;i {
for(j=x-1;j>i;j--)
cout << " ";
for(j=0;j<=i;j++)
cout << obj.paskal(i,j);
cout << endl;
}
cout << endl << endl << "faktorial ke-" << x << endl;
cout << obj.fakt(x);
cout << endl << endl << "cetak faktorial sebanyak " << x << endl;
for(i=1;i<=x;i++)
{
cout << obj.fakt(i);
}
cout << endl << endl << "bilangan biner dari" << endl;
obj.biner(x);

cin.get();
cin.get();
}

0 komentar:

Posting Komentar