edutecnica

Esercizio 6        

Calcolare il massimo comun divisore di due numeri interi inseriti da tastiera con metodo ricorsivo.
La soluzione più rapida al calcolo dell’MCD di due interi rimane l’algoritmo di Euclide che è di per se ricorsivo.

#include<iostream>
using namespace std;
int mcd(int a, int b){
   return b==0 ? a : mcd(b,a%b);
}//mcd
main(){
   int a,b;
   cout<<"ins.a:";cin>>a;
   cout<<"ins.b:";cin>>b;
   cout<<mcd(a,b);
}//main

Si controlla se (b) è zero; se lo è, (a) è il MCD.
Se non lo è, la funzione richiama se stessa con b a l posto di a e con il resto a%b al posto di b; ovviamente se questo resto è nullo, la funzione verrà terminata ed il valore a%b sarà l?MCD.