Cerința
Se citește de la tastatură un cuvânt s
format din cel mult 11
litere mici distincte. Să se genereze în ordine alfabetică și să se afișeze toate anagramele cuvântului s
în care vocalele sunt puncte fixe.
Date de intrare
Programul citește de la tastatură cuvântul s
.
Date de ieșire
Programul va afișa pe ecran pe rânduri separate anagramele cuvântului citit în care vocalele rămân pe pozițiile inițiale.
Restricții și precizări
- cuvântul
s
are cel mult11
caractere și este format din litere mici distincte
Exemplu
Intrare
dorel
Ieșire
doler dorel loder lored rodel roled
Explicație
Anagramele sunt afișate în ordine lexicografică, iar literele o
și e
rămân pe pozițiile inițiale.
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 anagrame_pfv:
#include <iostream>
#include <cstring>
using namespace std;
int n,X[12],P[12];
char s[12],v[]="aeiou";
void afisare()
{
for(int i=1;i<=n;i++)
cout<<s[X[i]];
cout<<'\n';
}
int ok(int k)
{
if((s[X[k]]=='a' || s[X[k]]=='e' || s[X[k]]=='i' || s[X[k]]=='o' || s[X[k]]=='u') && X[k]!=k-1)
return 0;
return 1;
}
void back(int k)
{
for(int i=0;i<n;i++)
if(!P[i])
{
X[k]=i;
P[i]=1;
if(ok(k))
{
if(k==n)
afisare();
else back(k+1);
}
P[i]=0;
}
}
int main()
{
cin>>s;
n=strlen(s);
for(int i=0;i<n;i++)
if(strchr(v,s[i])==0)
for(int j=i+1;j<n;j++)
if(strchr(v,s[j])==0)
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 #3154 anagrame_pfv
Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #3154 anagrame_pfv 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!