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
caractere, doar litere mari ale alfabetului englez, şi afişează pe ecran, fiecare pe câte o linie,
toate sufixele acestuia, în ordine crescătoare a lungimilor. Un sufix de lungime k al unui
cuvânt este un subşir format din ultimele k caractere ale acestuia.
Exemplu: dacă se citeşte cuvântul EXAMEN se vor afişa sufixele :
N
EN
MEN
AMEN
XAMEN
EXAMEN

Răspunsuri la întrebare

Răspuns de SKREFI
6

#include<iostream>

#include<string>


using namespace std;


void printSufix(string s, string builder = "")

{

   if(s.size() == 0) {

       cout<<builder;

       return;

   }

   cout<<builder<<endl;

   builder = s[s.size() - 1] + builder;

   s.erase(s.size() -1 ,1);

   printSufix(s,builder);

}


int main()

{

   string s;

   cin>>s;

   printSufix(s);

}


Da ti-am facut si o varianta mai simpla si mai boring oricum :D


#include<iostream>

#include<cstring>


using namespace std;



int main()

{

   char s[51];

   cin.get(s,51);

   int n = strlen(s); //Este mai eficient sa apelezi

   //asta odata decat de 100 de ori in foruri

   for(int i = 0; i <= n; i++){

       for(int j=n-i;j<n;j++)

           cout<<s[j];

       cout<<endl;

   }

}



SKREFI: Lasa-mi un mesaj daca vrei sa iti fac alt cod mai simplu si fara recursivitate!
SKREFI: Adica un comentariu aici
cosmaandra2000: Mersi, da, si aici varianta simpla este de ce aveam nevoie. Deocamdata astea mi se par mai ok, mai ales pentru bac, deocamdata trebuie sa inteleg esentialul :)) n-am timp la bac sa impresionez cu recursivitate/subprograme la o problema doar cu 2 foruri :))
SKREFI: Nici nu trebuie =))
SKREFI: Adica, nu cred ca te puncteaza daca faci aberatii cum am facut eu la prima solutie, acum, mna, eu fac prima data pentru mine, chiar daca sunt usoare, incerc sa mi le complic. si dupa fac si alta mai usoara, poate mai ineficienta, dar mai simplu si facuta pentru bac, nu pentru... altceva, eu nu lucrez pentru bac =), lucrez si fac asta pentru viitoare interviewuri, si pentru competitii
SKREFI: (chiar daca am bacul btw, nu sunt mai mare sau ceva)
Alte întrebări interesante