online: 5; azi: 707; total: 51162 Manual clasa a xi a - Tehnici de programare - Metoda backtraking

Probleme Rezolvate



Manual clasa a Xi a

Tehnici de programare

Metoda backtraking

Se citesc de la tastatură n caractere distincte. Să se gene reze toate cuvintele de m carac tere (m<n) care se pot forma cu aceste caractere şi care conțin toate cele n caractere.
# include < iostream >
using namespace std ;
int n, m;
char caractere[ 100 ];
char cuvant [ 100 ];
bool utilizat[ 100 ];
void tipar () {
for ( int i = 0 ; i < m; i++) {
cout << cuvant [i];
}
cout << endl ;
}
void bt ( int k) {
if (k == m) {
tipar ();
return ;
}
for ( int i = 0 ; i < n; i++) {
if (!utilizat[i]) {
cuvant [k] = caractere[i];
utilizat[i] = true ;
bt (k + 1 );
utilizat[i] = false ;
}
}
}
int main () {
cout << " Introduceti numarul de caractere n: " ;
cin >> n;
cout << " Introduceti caracterele: " ;
for ( int i = 0 ; i < n; i++) {
cin >> caractere[i];
}
cout << " Introduceti numarul de caractere pentru cuvinte m (m < n): " ;
cin >> m;
bt ( 0 );
return 0 ;
}