Berikut adalah kode program rekrusif :
#include
<iostream.h>
#include <conio.h>
#include <stdlib.h>
#include <ctype.h>
faktorial (int x)
{
int a, b;
a= 1;
for (b=1; b<=x; b++)
a = a*b;
//output
cout<<endl;
cout<<"hasil
dari "<<x<<"! : "<<a;
}
void fak ()
{
//variabel
int n, v;
char s [100];
char pilih;
pertama:
clrscr();
gotoxy(20,2); cout<<"Program
Menghitung Faktorial (rekrusif)";
gotoxy(20,3);
cout<<"---------------------------------------"<<endl<<endl;
//input
cout<<"input angka faktorial yang dicari : ";
cin>>s;
//validasi
n = atoi (s);
for (v=0;v<strlen(s);v++)
{
if (!isdigit(s[v]))
{
cout<<endl;
cout<<"input salah !"<<endl;
cout<<"tidak boleh angka negatif, atau huruf";
getch();
goto pertama;
}
}
//pemanggilan fungsi
faktorial (n);
gotoxy(20,10);
cout<<"---------------------------------"<<endl;
gotoxy(20,11); cout<<">>
inputkan \"a\" untuk ulang lagi"<<endl;
gotoxy(20,12); cout<<">>
inputkan yang lain untuk selesai"<<endl;
gotoxy(20,13); cout<<"-->
";
gotoxy(20,14);
cout<<"---------------------------------"<<endl;
gotoxy(25,13); cin>>pilih;
//perulangan
if (pilih=='a')
goto pertama;
}
void main()
{
char opsi;
menu:
gotoxy(18,1); cout <<
"==============================================\n";
gotoxy(27,2); cout << "Program
Faktorial Rekrusif \n";
gotoxy(18,3); cout <<
"==============================================\n";
gotoxy(18,4);cout << endl;
gotoxy(18,5);cout << "[1]
Faktorial Rekrusif \n";
gotoxy(18,6);cout << "[2] Exit
\n";
gotoxy(18,7);cout << "Input
Pilihan : ";
gotoxy(35,7);cin >> opsi;
switch (opsi)
{
case '1':
fak ();
break;
case '2':
exit(0);
default : cout<<"pilihan anda
tidak ada, silahkan pilih pilihan yang ada:";
goto menu;
break;
}
}
|