ini ada contoh untuk membuat rekursif dengan permasalahan mencari faktorial saya menggunakan bahasa c, sebelumnya apa itu rekursif? rekursif adalah cara memanggil fungsi dirinya sendiri, untuk lebih jelasnya langsung melihat contoh berikut.
berikut source code nya.
//faktorial
#include"stdio.h"
void menu();
void iterasi();
int rekursif(int );
int tail(int ,int);
main(){
menu();
}
void menu(){
char pil,jawab;
int a=1,f;
do{
puts("PROGRAM FAKTORIAL");
printf("1.iterasi biasa\n2.rekursif\n3.rekursif tail\n");
fflush(stdin);
printf("masukan pilihan : ");
pil=getchar();
switch(pil){
case '1':iterasi();break;
case '2':
{
puts("\n=========================");
puts("\t rekursif ");
puts("=========================");
printf("masukan faktorial dari : ");
scanf("%d",&f);
printf("faktorial=%d",rekursif(f));
break;
}
case '3':{
puts("\n=========================");
puts("\t TAIL ");
puts("=========================");
printf("masukan faktorial dari : ");
scanf("%d",&f);
printf("faktorial=%d",tail(f,a));
break;
break;
}
}
//if(pil=='1')
// iterasi();
fflush(stdin);
printf("\nmau input lagi : ");
jawab=getchar();
}while(jawab=='y'||jawab=='Y');
}
void iterasi(){
int i,f,hasil=1;
puts("\n=========================");
puts("\t iterasi ");
puts("=========================");
printf("masukan faktorial dari : ");
scanf("%d",&f);
for(i=f;i>=1;i--){
hasil=hasil*i;
}
printf("\nhasil faktorial = %d\n",hasil);
}
//ini fungsi rekursif nya
int rekursif(int f){
if(f==1)
return 1;
else if(f==0)
return 1;
else
return(f*rekursif(f-1));
}
int tail(int n, int a){
if (n < 0)
return 0;
else if (n == 0)
return 1;
else if (n == 1)
return a;
else
return tail(n-1,n*a);
}
Add Comments