Permutation Generator in C++
Problem Statement:-
Set A=(1,3, a, s, t, i} represent alphanumeric characters permitted to be used to set the password of length 4. Write C/C++ program to generate all possible passwords.Note:- Click on the Ads to support us.
Code:-
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include<iostream>3 | |
using namespace std; | |
class PermutationGenerator | |
{ | |
char *set; | |
int count=1; | |
int start,terms,levels; | |
public: | |
void swap(char *a,char *b) | |
{ | |
int temp; | |
temp=*a; | |
*a=*b; | |
*b=temp; | |
} | |
void permute(char *s,int start,int terms,int l=0) | |
{ | |
int i=0; | |
if(l==levels) | |
{ | |
cout<<count<<":"; | |
for(int i=0;i<=levels-1;i++) | |
cout<<*(s+i); | |
cout<<endl; | |
count++; | |
} | |
else | |
{ | |
for(int i=start;i<=terms;i++) | |
{ | |
swap(s+start,s+i); | |
permute(s,start+1,terms,l+1); | |
swap(s+start,s+i); | |
} | |
} | |
} | |
PermutationGenerator(int t) | |
{ | |
set=new char[t]; | |
start=0; | |
terms=t; | |
levels=0; | |
} | |
void getSet() | |
{ | |
cout<<"ENter Letters: \n"; | |
for(int i=start;i<terms;i++) | |
cin>>set[i]; // *(set+i); | |
} | |
void generatePermutations() | |
{ | |
cout<<"\nENter Number of literals to be used: "; | |
cin>>levels; | |
if(levels<=terms) | |
permute(set,start,terms-1); | |
else | |
cout<<"\nPermutaion Not possible. "; | |
} | |
}; | |
int main() | |
{ | |
int t; | |
cout<<"Enter Number of elements: "; | |
cin>>t; | |
PermutationGenerator p(t); | |
p.getSet(); | |
p.generatePermutations(); | |
} |
No comments: