fbpx

Problema #3250 – numere_77 – Rezolvari PBInfo

de Mihai-Alexandru

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.

#include <bits/stdc++.h>
using namespace std;

long long int s;

bool echi(int n){
    int sp = 0, si = 0;
    while(n){
        if(n % 2 == 0)
            sp += n % 10;
        else
            si += n % 10;
        n/=10;
    }
    return sp == si;
}

int main(){
    int a, b;
    cin >> a >> b;
    for(int i = a; i <= b; ++i)
        if(echi(i))
            s += i;
    cout << s;
    return 0;
}
Comentarii

S-ar putea sa iti placa