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

Cite stie sa faca aceste 2 probleme in C++???
1.Se da un nr cu max 4 cifre.Sa se afiseze un nou numar la care cifrele impare sa se dubleza.
x=1234
x=112334
2.Se d un numar x cu maxim 9 cifre.Sa se afiseze cifra din mijloc.
x=52413 x=2056
mijlocul=4 mijlocul=5 sau 6

Răspunsuri la întrebare

Răspuns de andreeagrigorjevschi
1

Explicație:

Lecţia 6 – Algoritmi pentru prelucrarea cifrelor, cmmdc, divizori primi

Clasa a V-a

1

Algoritmi pentru prelucrarea cifrelor, cmmdc, divizori primi

Prelucrarea cifrelor unui număr

if (n == 0) //prelucrare numarul 0

while (n > 0) {

cif = n%10;

//operatii care prelucreaza

//cifra curenta conform problemei

n = n / 10;}

do{

cif = n%10;

//operatii care prelucreaza

//cifra curenta conform problemei

n = n / 10;

} while (n > 0);

ATENȚIE! Prin spargerea unui număr în cifre, valoarea inițială se distruge.

Dacă mai aveți nevoie de ea în program, trebuie să-i faceți o copie lui n înainte de a-l sparge

a. calcularea numarului de cifre a lui n:

nrcif = 0;

if (n == 0) nr = 1;

while (n > 0) {

nrcif++;

n = n / 10;

}

nrcif = 0;

do{

nrcif++;

n = n / 10;

} while (n > 0);

b. determinarea primei cifre a numărului n

while (n > 9)

n = n / 10;

prima_cifra = n;

c. determinarea oglinditului lui n (numărul care conține cifrele lui n în ordine inversă)

oglindit = 0;

while (n > 0) {

cif = n % 10;

oglindit = oglindit * 10 + cif;

n = n / 10;

}

ATENȚIE! La oglindirea unui număr terminat cu cifre de 0, aceste cifre 0 se pierd deoarece devin zerouri

nesemnificative, în fața primei cifre a oglinditului.

d. extragerea cifrelor lui n în ordinea în care apar în numar

//determinăm cea mai mare putere a lui 10, care este mai mică sau egală decât numărul n

p = 1;

while (p * 10 <= n) p = p * 10;

while (n > 0) {

cif = n / p;

//prelucreaza cif conform cerintelor problemei

n = n % p;

}

Alte întrebări interesante