Cerința
Fie un șir de caractere. Prin dublarea șirului înțelege oglindirea sa și concatenarea oglinditului la șirul inițial. De exemplu, prin dublarea șirului arc
se obține șirul arccra
. Orice șir de caractere se poate obține prin dublarea de un număr de ori (eventual de zero ori) a unui șir de caractere.
Se dă un șir de caractere s
. Să se determine numărul maxim de operații de dublare care pot fi aplicate succesiv pentru a obține șirul s
.
Date de intrare
Programul citește de la tastatură șirul s
, format din litere mici ale alfabetului englez.
Date de ieșire
Programul va afișa pe ecran numărul M
, reprezentând numărul maxim de operații de dublare prin care se poate obține s
.
Restricții și precizări
- șirul
s
va avea cel mult255
caractere
Exemplu
Intrare
annaannaannaannaannaannaannaanna
Ieșire
4
Explicație
Șirul inițial este an
. După o dublare, devine anna
. După a doua dublare, șirul devine annaanna
. După a treia dublare șirul devine annaannaannaanna
, iar după a patra dublare șîrul devine annaannaannaannaannaannaannaanna
.
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 Dublare:
#include <iostream>
#include <cstring>
using namespace std;
char s[256];
int cnt(int n)
{
if( n % 2 == 1 )
return 0;
for(int i = 0, j = n - 1 ; i < j ; i ++ , j --)
if(s[i] != s[j])
return 0;
return 1 + cnt(n/2);
}
int main(){
cin.getline(s , 256);
cout << cnt(strlen(s));
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 #861 Dublare
Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #861 Dublare 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!