Se numește anagramă a unui cuvânt dat, un alt cuvânt ce conține toate literele primului, eventual în altă ordine.
Cerinţa
Se dă un cuvânt din cel mult 8
litere distincte. Să se afișeze, în ordine alfabetică, toate anagramele acestui cuvânt.
Date de intrare
Fişierul de intrare anagrame1.in
conţine pe pe prima linie un cuvânt S
, format din cel mult 8
litere distincte ale alfabetului englez.
Date de ieşire
Fişierul de ieşire anagrame1.out
va conţine toate anagramele cuvântului S
, fiecare pe o linie, în ordine alfabetică.
Exemplu
anagrame1.in
cal
anagrame1.out
acl alc cal cla lac lca
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 Anagrame1:
#include <fstream>
#include <iostream>
#include <cassert>
#include <cstring>
using namespace std;
ifstream fin("anagrame1.in");
ofstream fout("anagrame1.out");
char s[10];
int x[10],uz[10],n;
void afis(int k){
for(int i=1;i<=n;++i)
fout<<s[x[i]];
fout << endl;
}
void back(int k){
for(int i=0;i<n;++i)
if(uz[i]==0){
uz[i] = 1;
x[k]=i;
if(k==n)
afis(k);
else
back(k+1);
uz[i] = 0;
}
}
int main(){
fin >> s;
n = strlen(s);
for(int i=0;i<n;++i)
for(int j=i+1; j<n;j++)
if(s[i]>s[j]){
char aux = s[i];
s[i] = s[j];
s[j] = aux;
}
back(1);
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 #194 Anagrame1
Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #194 Anagrame1 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!