Problema numere15 #1613 de pe pbinfo va rog ca am reusit doar de 80p:
Cerința
Se citește un număr natural nenul n. Numărul n1 este format doar din cifrele pare ale lui n. Numărul n2 este format doar din cifrele impare ale lui n. Calculați valoarea absolută a diferenței lor.
Date de intrare
Programul citește de la tastatură numărul n.
Date de ieșire
Programul va afișa pe ecran numărul d, reprezentând valoarea absolută a diferenței dintre n1 și n2.
Restricții și precizări
1 ≤ n < 1000000000
numărul n conține cel puțin o cifră pară și cel puțin o cifră impară
Exemplu
Intrare
120341
Ieșire
73
Explicație
n1 este 204 iar n2 este 131. Diferența este 73.
Răspunsuri la întrebare
Răspuns de
0
Răspuns:
#include <iostream>
using namespace std;
int main()
{
int n, copie, cif, z=1, n1=0, n2=0, d;
cin >> n;
copie=n;
while (copie>9) { z*=10; copie/=10; }
while (n)
{
cif=n/z;
if (cif%2) n2=n2*10+cif;
else n1=n1*10+cif;
n%=z;
z/=10;
}
d=n1-n2;
if (d<0) d=-d;
cout << d << endl;
return 0;
}
Explicație:
laurstefan2002:
Doar 80...Ai putea sa incerci sa il optimizezi sau nu stiu sa incerci sa ii faci ceva ca sa dea 100 te tog?
using namespace std;
int main()
{
int n, copie, cif, p1=1, p2=1, n1=0, n2=0, d;
cin >> n;
while (n)
{
cif=n%10;
if (cif%2) {n2=n2+cif*p2; p2*=10;}
else { n1=n1+cif*p1; p1*=10; }
n/=10;
}
d=n1-n2;
if (d < 0) d=-d;
cout << d;
return 0;
}
Alte întrebări interesante
Matematică,
8 ani în urmă
Limba română,
8 ani în urmă
Matematică,
8 ani în urmă
Chimie,
8 ani în urmă
Limba română,
9 ani în urmă
Limba română,
9 ani în urmă