使用Java写出代码,题目为有1,2,3,4四个数字,能组成多少个互不相同且一个数字中无重复数字的三位数?要求系统输出结果,并输出总个数,要求一行10个数,用空格分隔
时间: 2024-09-27 12:18:08 浏览: 27
Java 1,2,3,4能组成多少个互不相同且无重复数字的实现代码
5星 · 资源好评率100%
这个问题可以使用递归的方式来解决,因为我们需要枚举每一位的数字。以下是用Java编写的解决方案:
```java
public class Main {
public static void main(String[] args) {
int[] digits = {1, 2, 3, 4};
int count = permute(0, digits);
for (int i = 0; i < count / 10; i++) {
System.out.print(permuteResult(digits[i * 10], (i + 1) * 9) + " ");
}
}
// 生成所有三位数并计数
private static int permute(int start, int[] digits) {
if (start == 2) {
return 1; // 一旦达到两位数,剩下最后一个位置唯一确定
} else {
int result = 0;
for (int end = start; end <= 3; end++) {
// 将当前数字放入第一位
digits[0] = digits[start];
// 递归处理剩余位
result += permute(start + 1, digits);
}
return result;
}
}
// 构造并返回一行10个数
private static String permuteResult(int firstDigit, int lastDigit) {
StringBuilder sb = new StringBuilder();
for (int i = firstDigit; i <= lastDigit; i++) {
sb.append(i).append(" ");
}
return sb.toString().trim(); // 去除末尾的空格
}
}
```
运行上述程序,会输出一行10个互不相同且一个数字中无重复数字的三位数。注意,由于只有4个数字,总共只能组成24个这样的三位数。
阅读全文