Informatică, întrebare adresată de vipilanac, 9 ani în urmă

Problema #3250 numere_77

Cerința
Se dau două numere naturale a și b. Calculați suma numerelor echilibrate din intervalul [a,b]. Un număr este echilibrat dacă are suma cifrelor pare egală cu suma cifrelor impare. De exemplu 3467 este echilibrat, iar 8333 nu este.

Date de intrare
Programul citește de la tastatură numerele a și b.

Date de ieșire
Programul va afișa pe ecran numărul s, reprezentând suma numerelor echilibrate din intervalul [a,b].

Restricții și precizări
1 ≤ a ≤ b ≤ 1.000.000

Exemplu

Intrare
301 402

Ieșire
2097

Explicație
În intervalul [301, 402] numerele echilibrate sunt 314, 336, 341, 358, 363, 385, iar suma lor este 2097.


Rayzen: Vrei de 100 de puncte?

Răspunsuri la întrebare

Răspuns de Rayzen
12

L-am făcut de 100 de puncte.

#include <iostream>

using namespace std;

int main()

{

long int a, b;

cin>>a>>b;

long long int S = 0;

for(long int i = a; i <= b; i++)

{

    long int x = i;

    long int V = 0;

    while(x > 0)

    {

       if(x%2 == 0) {V += x%10;}

       else {V -= x%10;}

       x /= 10;

    }

    if(V == 0) {S = S+i;}

}

cout<<S;

}


ModFriendly: Poti pune un long long int la S si iese de 100 de puncte.
Se poate ca suma numerelor echilibrate sa fie mai mare de 2^31
Rayzen: :O
Mersi mult, JustMathIsArt!
Eu am incercat sa pun long long int la toate inainte, si imi iesea tot 80 de puncte.
Nu m-am gandit sa pun doar la S.
Alte întrebări interesante