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

Se dau n numere naturale nenule. Calculaţi cel mai mare divizor comun al lor.
Intrare :4
18 54 24 42
Iesire: 6
Eu am facut aloritmul acesta dar nu imi da 0 puncte.
#include

using namespace std;

int main()
{
int a,b;
cin>>a;
cin>>b;
while(a!=b)
if(a>b)
a=a-b;
else
b=b-a;
cout<

Răspunsuri la întrebare

Răspuns de Brainlyrom
2

Răspuns:

#include <iostream>

using namespace std;

int cmmdc(int v[],int s,int d)

{int a,b;

if(s==d) return v[s];

else {a=cmmdc(v,s,(s+d)/2);

b=cmmdc(v,(s+d)/2+1,d);

while(a!=b)

   if(a>b)a=a-b;

else b=b-a;

return a;

}

}

int main()

{

   int v[100],n,i;

   cin>>n;

   for(i=1;i<=n;i++)

   cin>>v[i];

       cout<<cmmdc(v,1,n);

}

Explicație

Folosind metoda Divide et Impera(recursiv).Dac vrei o pot face si iterativ


deniss29: Multumesc foarte frumos
Alte întrebări interesante