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

Va rog din tot sufletul dau coroană in pseudocod

Anexe:

ploPLO123: cum ar fi?
ploPLO123: folosesc doar ce e in
ploPLO123: iostream
mirunaelena263: adică sa fie pe înțeles dacă poți scrie x=x+2 nu x+=s sau ++x++
ploPLO123: ok
mirunaelena263: sa nu scrii celălalte doua
ploPLO123: da
mirunaelena263: era un exemplu
mirunaelena263: xa sa pot înțelege mai bine, am test
mirunaelena263: mersi mult mult mult mult mult mult mult

Răspunsuri la întrebare

Răspuns de ploPLO123
1

Răspuns:

#include <iostream>

using namespace std;

/// cin - inseamna citire

/// cout - inseamna scriere

/// while - inseamna cat timp

/// % - inseamna restul impartirii

int main() {

   int n, i, cmmdc, x, r;

   cin >> n >> cmmdc;

   /// citim primul nr din serie si il atribuim cmmdc-ului ca valoare initiala

   i = 1;

   while ( i < n ) {

       cin >> x;

       while ( x > 0 ) {

           r = cmmdc % x;

           cmmdc = x;

           x = r;

       }

       i ++;

   }

   cout << cmmdc;

   return 0;

}

Explicație:

cmmdc-ul unei serii se calculeaza in felul urmator:

numim v[i] al i-lea element din serie

se calculeaza x = cmmdc(v[0],v[1])

dupa care x =  cmmdc(x,v[2]);

dupa care x = cmmdc( x, v[3] );

etc..

while ( x > 0 ) {

           r = cmmdc % x;

           cmmdc = x;

           x = r;

       }

este algoritmul lui euclid pentru aflarea cmmdc-ului a doua numere


mirunaelena263: primul element din serie nu este x?
mirunaelena263: adica cmmdc e x(inițial) si după r primește cmmdc%x
mirunaelena263: noi pt divizorii comuni am învățat
mirunaelena263: cat timp r=a%b executa
mirunaelena263: a=b
mirunaelena263: b=r
mirunaelena263: r=a%b
mirunaelena263: scrie a
Alte întrebări interesante