- 개발자 : 나휘동
- Recursive Function Call 사용
~cpp
#include <iostream.h>
void perm(char * list, int i , const int n);
void swap(char & aVal1, char & aVal2);
const int SIZE = 4;
char arr[SIZE] = {'a', 'b', 'c', 'd'};
void main()
{
perm(arr, 0, SIZE-1);
}
void perm(char * list, int i , const int n)
{
int j;
if ( i == n ){
for ( j = 0 ; j <= n ; j++ )
cout << list[j];
cout << "\t";
}
else{
for ( j = i ; j <= n ; j++ ){
swap(list[i], list[j]);
perm(list, i+1, n);
swap(list[i], list[j]);
}
}
}
void swap(char & aVal1, char & aVal2)
{
char temp = aVal1;
aVal1 = aVal2;
aVal2 = temp;
}