下面程序在Dev-C环境运行通过:
#include <cstdlib>
#include <iostream>
using namespace std;
int n = 0;
void swap(char *a, char *b){
int m;
m = *a;
*a = *b;
*b = m;
}
void fun(char *list, int k, int m){
int i;
if(k > m){
for(i = 0; i <=m; i++){
cout << "r" << list[i];
}
cout << endl;
n++;
}else{
for(i = k; i <=m; i++){
swap(&list[k], &list[i]);
fun(list, k+1, m);
swap(&list[k], &list[i]);
}
}
}
int main(int argc, char *argv[])
{
char list[] = "123";
fun(list, 0, 2);
cout << "total: " <<n << endl;
system("PAUSE");
return EXIT_SUCCESS;
}