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
.
Cum e corect?
cout < "As la info";
cout << "As la info";
cout >> "As la info";
Felicitări! Poți mai mult?
Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.
Greșit, dar nu-i bai!
Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.
Rezolvare
Iată rezolvarea de 100 de puncte pentru problema Suma6:
#include <fstream>
#include <iostream>
using namespace std;
ifstream fin("suma6.in");
ofstream fout("suma6.out");
int main()
{
//nr1=numarul de val construite
//nr=nr de numere speciale
int n, s=0, nr=0, x;
int a,b,c;
fin>>n;
for(int i=1;i<=n;i++)
{
fin>>x;
int y=x, nrc=0, p1=1, z=x;
while(y)
{
y/=10;
nrc++;
p1*=10;
}
if(nrc!=3)
{
while(z>9)
z/=10;
int primacif=z;
int p=1;
for(int j=1;j<=nrc/2;j++)
p*=10;
int cmj=(x/p)%10;
if (primacif==x%10)
s+=cmj;
}
else
{
a=x/100;
b=x/10%10;
c=x%10;
if(a==c)
{
nr++;
s+=b;
}
}
}
fout<<s<<'\n';
return 0;
}
Atenție
Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa .
Rezolvarea problemei #1944 Suma6
Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #1944 Suma6 de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.
Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!