题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。
方法一:列出取值范围内所有数据,分别检查是否符合条件
public static void calculateNum1() {
int count = 0;
int a, b, c;
//查询123-500之间满足条件的数字
for (int i = 123; i < 500; i++) {
a = i / 100;
b = (i - a * 100) / 10;
c = i % 10;
//判断是否满足条件
if (a > 0 && a < 5 && b > 0 && b < 5 && c > 0 && c < 5 && a != b
&& a != c && b != c) {
count++;
System.out.print(i + " ");
}
}
System.out.print("\n" + count);
}
public static void calculateNum2() {
int count = 0;
int Num;
//百位
for (int a = 1; a <= 4; a++) {
//十位
for (int b = 1; b <= 4; b++) {
//个位
for (int c = 1; c <= 4; c++) {
//检查组合是否满足互不相等条件
if ((a != b) && (a != c) && (b != c)) {
//组合数据
Num = a * 100 + b * 10 + c;
count++;
System.out.print(Num + " ");
}
}
}
}
System.out.print("\n" + count);
}