Witam,
Chciałem napisać program, w którym dla podanej przez użytkownika długości i wyboru znaków z jakich miałby się taki wyraz składać, wypisze wszystkie możliwe kombinacje.
Z racji tego, że dopiero zaczynam ustaliłem alfabet na ab oraz długość na dwa. Czyli program powinien machnąć mi na ekranie:
aa
ab
ba
bb
skleciłem taki kod:
#include <iostream>
#include <sstream>
using namespace std;
void Gen(string haslo, const int size, string alfabet);
int main()
{
string alfabet = "ab";
string haslo = "";
const int size = 2;
Gen(haslo,size,alfabet);
system("pause");
return 0;
}
void Gen(string haslo, const int size,string alfabet)
{
if (haslo.length() == size)
{
cout << haslo << endl;
}
else
{
for (int i = 0; i < alfabet.length(); i++)
{
haslo += alfabet[i];
Gen(haslo, size, alfabet);
}
}
}
ale zdaje się produkować w nieskończoność aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
Pytanie, jakiego i gdzie zrobić ifa, żeby w odpowiednim momencie zmieniał a na b i działał tylko do mojego size?
I czy w ogóle to co napisałem ma sens.
Bo wszystko super machnie mi aa, następnie doda b, a później jedzie już tylko w nieskończoność dowalając same a. Zupełnie nie działa na size.
Pzdr