问题描述
将1,2,…,9共9个数分成三组,分别组成三个三位数,且使这三个三位数构成
1:2:3的比例,试求出所有满足条件的三个三位数。
例如:三个三位数192,384,576满足以上条件。
输入格式
无输入文件
输出格式
输出每行有三个数,为满足题设三位数。各行为满足要求的不同解。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
package adv83; import java.util.Scanner; public class Main { private static int[] num; public static void main(String[] args) { Scanner in = new Scanner(System.in); num = new int[9]; in.close(); dfs(0); } private static void dfs(int pos) { if (pos == 9) { int one = num[0] * 100 + num[1] * 10 + num[2]; int two = num[3] * 100 + num[4] * 10 + num[5]; int three = num[6] * 100 + num[7] * 10 + num[8]; if (one * 2 == two && one * 3 == three) { System.out.println(one + " " + two + " " + three); } return; } for (int i = 1; i <= 9; i++) { if (isNotSelect(pos, i)) { num[pos] = i; dfs(pos + 1); } } } private static boolean isNotSelect(int pos, int value) { for (int i = 0; i < pos; i++) { if (num[i] == value) { return false; } } return true; } } |
❤ 点击这里 -> 订阅《PAT | 蓝桥 | LeetCode学习路径 & 刷题经验》by 柳婼
❤ 点击这里 -> 订阅《从放弃C语言到使用C++刷算法的简明教程》by 柳婼
❤ 点击这里 -> 订阅PAT甲级乙级、蓝桥杯、GPLT天梯赛、LeetCode题解离线版
