[算法练习]寻找三位数

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);
			}
		}
		
	}
}

猜你喜欢

转载自blog.csdn.net/yizhidamanman/article/details/81487591