latest Post

Program mencari persekutuan bilangan terbesar dengan rekursif dan iterative di C++




#include <iostream>
#include <math.h>
#include <limits>
#include <cstdlib>
#include <cstring>
using namespace std;



int kata;
char val [100];

int validasi()
{
    do
    {
        kata=0;
        cout<<"\t\t";cin>>val;
        for(int i=0; i<strlen(val); i++)
        {
            if(isdigit(val[i])==0)
                kata++;
        }
        if(kata !=0)
            cout<<"\t\tInput salah !\n"<<endl;

    }
 while(kata!=0);
    return 0;
}

int GCD_iteratif(int x, int y){
 int a, b, c;
  if(x<y) {
    a=y;
    b=x;
  }
  else {
    a=x;
    b=y;
  }
  c=1;
  
  while(c!=0) {
    c=a%b;
    a=b;
    b=c;
  }
 return(a);
}

int GCD_rekursif(int a, int b) {
 int c;
  if(b==0) 
   return (a);
   else { 
    c = a%b; 
     return (GCD_rekursif(b,c)); 
   } 
}

int main(){
      int a,b,pilihan;
      
      cout<<"\tFungsi Rekursif dan Iterative Faktor Persekutuan Terbesar"<<endl;
      cout<<"\t========================================================="<<endl; 
   cout<<"\t\tTekan 1 untuk Faktor Persekutuan Terbesar Rekursif\n\t\tTekan 2 untuk Faktor Persekutuan Terbesar Iterative\n\t\tTekan 3 untuk Berehenti"<<endl;
   
   balik:
   cout<<"\n\t\tMasukkan Pilihan : ";
   validasi(); pilihan=atoi(val);
   
   switch(pilihan){
   
   case 1 : {
  cout<<"\n\t\tFaktor Persekutuan Terbesar Rekursif ";
    cout<<"\n\t\tMasukkan bilangan pertama : ";
    validasi(); a=atoi(val);
  cout<<"\t\tMasukkan bilangan kedua   : ";
  validasi(); b=atoi(val);
  if (a==0||b==0)
   cout<<"\t\tNilai harus berupa bilangan bulat positif";
  else
   cout<<"\t\tFPB dari "<< a <<" and "<< b << " adalah "<< GCD_rekursif(a,b)<< endl;
  break;
   }  
      
   case 2 :{
    cout<<"\t\tMasukkan bilangan pertama : ";
    validasi(); a=atoi(val);
  cout<<"\t\tMasukkan bilangan kedua   : ";
  validasi(); b=atoi(val);
  if (a==0||b==0)
   cout<<"\t\tNilai harus berupa bilangan bulat positif";
  else
   cout<<"\t\tFPB dari "<< a <<" and "<< b << " adalah "<< GCD_iteratif(a,b)<< endl; 


  break;
   }   
   
   case 3:{
    cout<<"\t\tBye ";
    return 0;
   }
    
   default :
    cout<<"\t\tPilihan salah !";
   
   }
   
 cout<<"\n\t---------------------------------------------------------"<<endl; 
 system("pause");
 goto balik;
      
}


About Unknown

Unknown
Recommended Posts × +

0 comments:

Post a Comment