public class PermutCombi { static void output(int[] num, int length) { int i; for (i = length - 1; i >= 0; --i) System.out.print((num[i]+1) + " "); System.out.println(); } static void permutCombi(int n) { int[] num, ; int i, flag; num = new int[n + 1]; = new int[n]; for (i = 0; i <= n; ++i) num[i] = 0; do { for (i = 0; i < n; ++i) [i] = 0; flag = 0; ++num[0]; for (i = 0; i < n; ++i) { if (num[i] == n) { num[i] = 0; ++num[i + 1]; } ++[num[i]]; // 各位数组单元有无重复 if ([num[i]] > 1) { flag = 1; break; } } if (flag == 0) output(num, n); } while (num[n] == 0); } public static void main(String[] args) { int n = 9; permutCombi(n); } }
public class PermutCombi {
static void output(int[] num, int length) {
int i;
for (i = length - 1; i >= 0; --i)
System.out.print((num[i]+1) + " ");
System.out.println();
} static void permutCombi(int n) {
int[] num, ;
int i, flag;
num = new int[n + 1];
= new int[n];
for (i = 0; i <= n; ++i)
num[i] = 0;
do {
for (i = 0; i < n; ++i)
[i] = 0;
flag = 0;
++num[0];
for (i = 0; i < n; ++i) {
if (num[i] == n) {
num[i] = 0;
++num[i + 1];
}
++[num[i]];
// 各位数组单元有无重复
if ([num[i]] > 1) {
flag = 1;
break;
}
}
if (flag == 0)
output(num, n);
} while (num[n] == 0);
} public static void main(String[] args) {
int n = 9;
permutCombi(n);
}
}