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

Cerinţa
Se citește un număr natural n. Acest număr se “împarte” în alte două numere a și b, astfel: a este format din cifrele din prima jumătate a lui n, b este format din cifrele din a doua jumătate a lui n. Dacă n are număr impar de cifre, cifra din mijloc se ignoră. De exemplu, dacă n=9183792, atunci a=918, iar b=792. Să se determine cel mai mare divizor comun al lui a și b.

Date de intrare
Programul citește de la tastatură numărul n.

Date de ieşire
Programul afișează pe ecran numărul X, reprezentând valoarea cerută.

Restricţii şi precizări
10 ≤ n ≤ 1.000.000.000

Exemplu
Intrare

9183792
Ieșire

18

Răspunsuri la întrebare

Răspuns de pmarian98
0

#include <iostream>

#include <cstdlib>

using namespace std;

int main(){

int n , x , y;

 

cin >> n;

x = n;

 

int nrc = 0;

do

{

 nrc ++;

 x /= 10;

}

while(x);

 

int p  = 1;

y = 0;

for(int i = 1 ; i <= nrc / 2 ; ++i){

 y += n % 10 * p;

 p *= 10;

 n /= 10;

}

if(nrc % 2 ==1)

 n /= 10;

x = n;

 

 

cout << abs(x-y);

 

return 0;

}


mierlaaurie: de ce sa se afiseze abs(x-y)?????????
Alte întrebări interesante