Informatică, întrebare adresată de Chrismas, 9 ani în urmă

Anagrame. Se citește un cuvânt cu n litere . Se cere să se tipărească toate anagramele

cuvântului citit. Se poate folosi algoritmul pentru generarea permutărilor.
Pascal si c++

Răspunsuri la întrebare

Răspuns de radutanasa86
0
Varianta c++:

#include <bits/stdc++.h> using namespace std; ifstream fin("anagrame1.in"); ofstream fout("anagrame1.out"); int st[10],top,f[10],n; char cuv[10],a[10]; void Citire() { int i; fin>>cuv; sort(cuv,cuv+strlen(cuv)); n++; f[n]++; a[n]=cuv[0]; for(i=1; i<strlen(cuv);) { if(a[n]==cuv[i]) { f[n]++; i++; } else { n++; f[n]++; a[n]=cuv[i]; i++; } } } void Afisare() { int i; for(i=1; i<=n; i++) fout<<a[st[i]]; fout<<"\n"; } void Back(int top) { int i; if(top==(n+1)) Afisare(); else for(i=1; i<=n; i++) if(f[i]) { f[i]--; st[top]=i; Back(top+1); f[i]++; } } int main() { Citire(); Back(1); fin.close(); fout.close(); return 0; }

Alte întrebări interesante