Răspuns :
Răspuns:
#include <iostream>
#include <cstring>
#define MAX 10
using namespace std;
int n,v[MAX] ;
int valid(int k);
int solutie(int k);
void afisare(int k);
void BK(int k);
int main()
{cout<<"n= "; cin>>n;
BK(1);
return 0;
}
void BK(int k)
{int i;
for (i=1;i<=n;i++)
{v[k]=i;
if (valid(k))
{if (solutie(k))
afisare(k);
else
BK(k+1);
}
}
}
int valid(int k)
{int i;
char voc[]="aei";
for (i=1;i<=k-1;i++)
if (v[i]==v[k] || (strchr(voc,(char)(v[k]+96)) && strchr(voc,(char(v[k-1]+96)))))
return 0;
return 1;
}
int solutie(int k)
{if (k==n)
return 1;
return 0;
}
void afisare(int k)
{int i;
for (i=1;i<=k;i++)
cout<<(char)(v[i]+96)<<" ";
cout<<endl;
}
Explicație:
parcă e aşa... este o problemă.. pentru n mai mic ca 5 afişează toate sirurile, dar pentru n mai mare nu se văd toate... adică nu le văd pe cele generate primele...
Am lăsta la afişare spaţiu între caractere. Dacă vrei, îl ştergi
Vă mulțumim că ați ales să vizitați platforma noastră dedicată Informatică. Sperăm că informațiile disponibile v-au fost utile. Dacă aveți întrebări suplimentare sau aveți nevoie de sprijin, nu ezitați să ne contactați. Vă așteptăm cu drag și data viitoare! Nu uitați să adăugați site-ul nostru la favorite pentru acces rapid.