Informatică, întrebare adresată de alexeelena89, 8 ani în urmă

Scrieti un program Java care implementeaza un algoritm recursiv pentru
calculul cmmdc intre doua numere naturale a si b definit in felul urmator:
Cmmdc(a,b) = Cmmdc (b, a % b), daca b<>0;
Cmmdc(a,0)= a daca b=0

Răspunsuri la întrebare

Răspuns de cristian51090ow2ldu
0

public class Main {

 public static int cmmdc(int a, int b) {

   // daca b este 0, returnam a

   if (b == 0) {

     return a;

   }

   // altfel, apelam functia cmmdc cu parametrii b si a mod b

   return cmmdc(b, a % b);

 }

 public static void main(String[] args) {

   // calculam cmmdc pentru a = 15 si b = 10

   int a = 15;

   int b = 10;

   int cmmdc = cmmdc(a, b);

   System.out.println("Cmmdc(" + a + ", " + b + ") = " + cmmdc);

 }

}



Acest algoritm foloseste recursivitatea pentru a gasi cel mai mare divizor comun al numerelor a si b. In fiecare apel al functiei, se calculeaza restul impartirii lui a la b, si apoi se apeleaza functia cmmdc cu parametrii b si restul. Acest proces continua pana cand b devine 0, caz in care functia returneaza a.

Alte întrebări interesante