Informatică, întrebare adresată de cosmaandra2000, 8 ani în urmă

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 SKREFI
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.
SKREFI: #include
#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< }
}
SKREFI: Metoda mai usoara si mai plictisitoare ;)
SKREFI: Si pentru ca s-a dat paste ca naiba uite aici un pastebin: https://pastebin.com/mCsftVqn
cosmaandra2000: aah mersi, si asta e toata problema ?
cosmaandra2000: pai eu oricum de problema simpla am nevoie, nu facem cu recursivitate. Facem simplu, tot in main, cu for, if, functii string, nici macar cu subprograme, adica asa le-am facut pe toate din subiecte 2009. De ce sa te complici ? :))
SKREFI: da =) ruleaza si vezi daca ai dubii dau ceva :)
SKREFI: "complici" e relativ. Din pura pasiune pentru coding ti-as putea raspunde, mi se pare mai misto varianta mai "complicata".
cosmaandra2000: Dap, am rulat. Merge, multumesc. La al doilea for era j<=i ca nu imi afisa si T ul din final
Alte întrebări interesante