题目描述
将1,2,…,9共9个数分成三组,分别组成三个三位数,且使这三个三位数构成
1:2:3的比例,试求出所有满足条件的三个三位数。
例如:三个三位数192,384,576满足以上条件。
输入
无输入文件
输出
输出每行有三个数,为满足题设三位数。各行为满足要求的不同解。
样例输入
无
样例输出
无
解题思路:
这道题也没啥思路的,就是一个全排列,全排列完以后将每三个合成一组去判断就好了。
全排列忘了可以看代码去回忆一下,直接看代码吧
代码如下:
public class Cyyw1518 {
public static void main(String[] args) {
int [] arr = {1,2,3,4,5,6,7,8,9};
f(arr, 0, arr.length);
}
/**
* 全排列
*/
public static void f(int [] arr,int k , int end) {
if (k == end) {
int y1,y2,y3;
y1 = arr[0]*100+arr[1]*10+arr[2];
y2 = arr[3]*100+arr[4]*10+arr[5];
y3 = arr[6]*100+arr[7]*10+arr[8];
if (y3 == 3 * y1 && y2 == 2 * y1) {
System.out.println(y1+" "+ y2+" "+ y3);
}
return;
}
for (int i = k; i < end; i++) {
int temp = arr[i];
arr[i] = arr[k];
arr[k] = temp;
f(arr, k+1, end);
temp = arr[i];
arr[i] = arr[k];
arr[k] = temp;
}
}
}
结果示例:
192 384 576
219 438 657
273 546 819
327 654 981