fbpx

Problema #1475 – Numere14 – Rezolvari PBInfo

de Mihai-Alexandru

Victor a primit în dar de la mama sa un joc cu n numere naturale, fiecare dintre ele având număr impar de cifre. Din fiecare număr din joc, el trebuie să extragă cifra din mijloc.

Numărul de puncte pe care le câştigă Victor este egal cu suma cifrelor impare situate în mijlocul fiecărui număr dat.

Cerinţă

Cunoscând numărul n de numere, precum şi cele n numere naturale pe care le primeşte Victor, ajutaţi-l să calculeze corect suma cifrelor impare din mijlocul fiecărui număr citit.

Date de intrare

Fişierul numere14.in conţine pe prima linie numărul n de numere naturale, iar pe următoarea linie n numere naturale având număr impar de cifre.

Date de ieşire

Fişierul numere14.out va conţine pe prima linie un număr ce reprezintă suma cifrelor impare situate în mijlocul fiecărui număr citit.

Restricţii şi precizări

  • 1 < n < 1000000
  • cele n numere din joc au cel mult 9 cifre fiecare

Exemplu

numere14.in

5
123 34567 222 271 1523412 

numere14.out

15
#include <bits/stdc++.h>
using namespace std;
ifstream fin("numere14.in");
ofstream fout("numere14.out");
int nrcif(int n)
{
    int cnt = 0;
    while(n != 0)
    {
        cnt++;
        n /= 10;
    }
    return cnt;
}
int main()
{
    int n , x , cnt = 0 , s = 0;
    fin >> n;
    for(int i = 1; i <= n; ++i)
    {
        fin >> x;
        int cnt = nrcif(x);
        if(cnt % 2 == 1)
        {
            cnt /= 2;
            while(cnt != 0)
            {
                cnt--;
                x /= 10;
            }
            if(x % 10 % 2 == 1) s += x % 10;
        }
    }
    fout << s;

    fin.close();
    fout.close();

    return 0;
}
Comentarii

S-ar putea sa iti placa