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
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
Ed. tehnologică,
8 ani în urmă
Limba română,
8 ani în urmă
Matematică,
8 ani în urmă
Limba română,
8 ani în urmă
Matematică,
8 ani în urmă
Limba română,
9 ani în urmă
Engleza,
9 ani în urmă