fbpx

Problema #1944 – Suma6 – Rezolvari PBInfo

de Mihai-Alexandru

La ultima oră de matematică, Ionel a învățat despre numere speciale. Acestea sunt numere naturale cu număr impar de cifre care au prima cifră egală cu ultima. Ionel a primit ca temă să analizeze un șir format din numere având număr impar de cifre. El trebuie să determine suma cifrelor din mijloc, de la numerele speciale care se găsesc în șirul dat.

Cerința

Se citește numărul natural n și apoi se citesc n numere naturale având fiecare număr impar de cifre. Să se calculeze suma cifrelor din mijlocul numerelor speciale din șirul dat.

Date de intrare

Fișierul de intrare suma6.in conține pe prima linie numărul natural n. Pe a doua linie în fișier, se găsesc separate prin câte un spațiu n numere naturale, fiecare având număr impar de cifre.

Date de ieșire

Fișierul de ieșire suma6.out va conține pe prima linie un număr ce reprezintă suma cifrelor din mijlocul numerelor speciale din șirul dat.

Restricții și precizări

  • 1 ≤ n ≤ 1000
  • cele n numere au cel mult nouă cifre
  • pentru 30% dintre teste cele n numere au exact trei cifre

Exemplu

suma6.in

5
122 13501 407 212 49974

suma6.out

15

Explicație

Numerele speciale din șirul dat sunt: 13501, 212 și 49974.
Suma cifrelor din mijlocul lor este: s= 5 + 1 + 9 = 15.

#include <bits/stdc++.h>
using namespace std;
ifstream fin("suma6.in");
ofstream fout("suma6.out");
int imp(int n)
{
    int aux = n , cnt = 0 , p = 0;
    while(n != 0)
    {
        cnt++;
        p = n % 10;
        n /= 10;
    }
    if(cnt % 2 == 1 && p == aux % 10) return 1;
    else return 0;
}
int nrcif(int n)
{
    int cnt = 0;
    while(n != 0)
    {
        cnt++;
        n /= 10;
    }
    return cnt;
}
int mij(int n)
{
    int cnt = nrcif(n) , p = 1;
    for(int i = 1 ; i <= cnt/2 ; ++i) p *=10;
    int cmij = (n / p) % 10;
    return cmij;
}
int main()
{
    int n , x , s = 0;
    fin >> n;
    for(int i = 0 ; i < n; ++i)
    {
        fin >>x;
        if(imp(x))s+=mij(x);
    }
    fout << s;
    return 0;
}
Comentarii

S-ar putea sa iti placa