Scrieţi programul C/C++ care citeşte de la tastatură un cuvânt format din cel mult 50 de
caractere, doar litere mari ale alfabetului englez, şi afişează pe ecran, fiecare pe câte o linie,
toate prefixele acestuia, în ordine crescătoare a lungimilor. Un prefix de lungime k al unui
cuvânt este un subşir format din primele k caractere ale acestuia.
Exemplu: dacă se citeşte cuvântul BACALAUREAT se vor afişa prefixele:
B
BA
BAC
BACA
BACAL
BACALA
BACALAU
BACALAUR
BACALAURE
BACALAUREA
BACALAUREAT
Răspunsuri la întrebare
Răspuns de
2
#include<iostream>
#include<string>
using namespace std;
void printPrefix(string s, string builder = "")
{
if(s.size() == 0) {
cout<<builder;
return;
}
cout<<builder<<endl; //Afisez in fiecare recursie builderul
builder += s[0]; //Adaug dupa afisare prima litera din s
s.erase(0,1); // Si elimin litera pe care am adaugat-o, practic, o mut de pe prima pozitie
// a stringului pe ultima pozitie a builderului
printPrefix(s,builder); //si apelez din nou functia cu parametri noi
}
int main()
{
string s;
cin>>s;
printPrefix(s);
}
SKREFI:
Asta este prin metoda recursiva, o s-o fac si simplu imediat in cazul in care n-o intelegi pe asta.
#include
using namespace std;
int main()
{
char s[51];
cin.get(s,51);
for(int i = 0; i < strlen(s); i++){
for(int j=0;j cout< cout< }
}
Alte întrebări interesante
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Limba română,
8 ani în urmă
Matematică,
8 ani în urmă
Limba română,
8 ani în urmă
Limba română,
9 ani în urmă
Limba română,
9 ani în urmă
Chimie,
9 ani în urmă