Se consideră un șir S
de cifre nenule. O secvență a șirului S
este o succesiune de cifre din S
care apar pe poziții consecutive. Un număr n
asociat unei secvențe din S
este numărul în baza 10
care se formează cu toate cifrele din secvența respectivă, în ordinea în care apar în aceasta.
Un număr n
se numește caraghios dacă este egal cu pătratul sumei cifrelor lui n
.
Cerința
Dându-se un șir S
de cifre nenule, să se determine câte dintre secvențele din S
au numere asociate caraghioase.
Date de intrare
Fișierul de intrare caraghios.in
conține pe prima linie șirul S
de cifre nenule.
Date de ieșire
Fișierul de ieșire caraghios.out
va conține pe prima linie numărul de secvențe din S
care au asociate numere caraghioase.
Restricții și precizări
- Șirul
S
va conține maxim1.000.000
de cifre
Exemplu
caraghios.in
28113
caraghios.out
3
Explicație
Toate secvențele lui S
sunt: 2, 28, 281, 2811, 28113, 8, 81, 811, 8113, 1, 11, 113, 1, 13, 3
Există 3
secvențe care au asociate numere caraghioase: 81, 1, 1
81 = (8+1)*(8+1), 1 = 1*1, 1 = 1*1
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 Caraghios:
//100 p
#include "fstream"
std::ifstream cin("caraghios.in");
std::ofstream cout("caraghios.out");
int nr;
int main(){
char x, y;
cin >> x;
if(x == '1')
++ nr;
for(;cin >> y;){
if(y == '1'){
++ nr;
if(x == '8')
++ nr;
}
x = y;
}
cout<<nr;
}
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 #2283 Caraghios
Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #2283 Caraghios 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!