比如 0 - 4一共有多少种排列方式;这是高中的时候学过的课程,但是可以通过程序来实现:
int num[10]/*保存数字的顺序*/, flag[10]/*用于记录是否使用当前的值*/, n = 4;
void rank(int step) {
if (step == n) {//如果超过最大值
for (int i = 0; i < n; i++) {
printf("%d ", num[i]);
}
printf("\n");
return;
}
for (int i = 0; i < n; i++) {
if (flag[i] == 0) {
num[step] = i;
flag[i] = 1;
rank(step + 1);
flag[i] = 0;
}
}
return;
}
运行结果:
aaa