Description
将1,2,…,9共9个数分成三组,分别组成三个三位数,且使这三个三位数构成
1:2:3的比例,试求出所有满足条件的三个三位数。
例如:三个三位数192,384,576满足以上条件。
思路
①据题目要求,第一个三位数m应满足条件 123<=m<333(三个数字均为三位数)
②第二个数=2*m、第三个数=3*m
③将三个三位数分别按照个、十、百单位分离数字
④判断9个数字是否出现重复或为零,通过即输出
import java.util.*;
import java.lang.reflect.Array;
import java.util.Arrays;
public class Main{
public static boolean Judge(int a,int b,int c){
boolean flag=true;
int nums[]=new int[9];
nums[0]=a/100;
nums[1]=a/10%10;
nums[2]=a%10;
nums[3]=b/100;
nums[4]=b/10%10;
nums[5]=b%10;
nums[6]=c/100;
nums[7]=c/10%10;
nums[8]=c%10;
Arrays.sort(nums);//从小到大排序
for(int i=0;i<8;i++){
if(nums[i]==nums[i+1]||nums[i]==0){//判断重复和0
flag=false;
break;//只要有重复就跳出循环
}else{
flag=true;
}
}
return flag;
}
public static void main(String[]args){
for(int i=123;i<=333;i++){//min=123;max=999
int j=i*2;
int k=i*3;
if(Judge(i,j,k)){
System.out.println(i+" "+j+" "+k);
}
}
}
}