C++ Program to find all the combinations that you can make with one word example: "abc" -> 9 combinations -> abc - acb - bac - bca - etc...
#include <iostream.h>
#include <string.h>
// Program to display the all available
// unique combinations of a given string of any length.
#include <iomanip.h>
#include<conio.h>
typedef char string[80];
long fac(int getal)
//
{
long faculteit = 1;
for (; getal>1; getal--) faculteit*=getal;
return faculteit;
} // long fac(int getal)
void swapchars(string tekst, int char1, int char2)
//
{
char hulp;
hulp=tekst[char2];
tekst[char2]=tekst[char1];
tekst[char1]=hulp;
} //
int findcombo(string tekst, int positie)
{
int teller = 1;
int nulpos = positie;
long faculteit;
string oldtekst;
faculteit = fac(strlen(tekst)-positie);
while (teller<=faculteit)
{
if (positie<strlen(tekst)-1) positie++;
if (faculteit>2)
{
strcpy(oldtekst,tekst);
teller+=findcombo(tekst,nulpos+1);
strcpy(tekst,oldtekst);
swapchars(tekst,nulpos,positie);
}
else
{
teller++;
swapchars(tekst,nulpos,positie);
cout << tekst << "\n";
}
}
return faculteit;
} //
int main(void)
{
clrscr();
string tekst;
cout << "The entered words is : ";
cin >> tekst;
cout << endl<<"Word: " << tekst << "\n";
cout << "Obtained combination: " << fac(strlen(tekst)) << " ";
findcombo(tekst,0);
getch();
return 0;
}
Related Posts : C++ Programs
0 comments:
Post a Comment