试题 算法提高 寻找三位数

问题描述
  将1,2,…,9共9个数分成三组,分别组成三个三位数,且使这三个三位数构成
  1:2:3的比例,试求出所有满足条件的三个三位数。
  例如:三个三位数192,384,576满足以上条件。
输入格式
  无输入文件
输出格式
  输出每行有三个数,为满足题设三位数。各行为满足要求的不同解。

资源限制
时间限制:1.0s 内存限制:512.0MB

思路
有题目可知:所求解是由九个不同的数字组成,所以这题可以使用暴力破解法把九个不同的数字一一列举成符合题意得答案……

代码块

public class Main {
	public static void main(String[] args){
		
		for(int a = 1; a <= 9; a++)//1
			for(int b = 1; b <= 9; b++)//2
				if(a!=b)
				for(int c = 1; c <= 9; c++)//3
					if(c != a && c!=b)
					for(int d = 1; d <= 9; d++)//4
						if(d!=a&&d!=b&&d!=c)
						for(int e = 1; e <=9; e++)//5
							if(e!=a&&e!=b&&e!=c&&e!=d)
							for(int f = 1; f <= 9; f++)//6
								if(f!=a&&f!=b&&f!=c&&f!=d&&f!=e)
								for(int g = 1; g <= 9; g++)//7
									if(g!=a&&g!=b&&g!=c&&g!=d&&g!=e&&g!=f)
										for(int h = 1; h <= 9; h++)//8
											if(h!=a&&h!=b&&h!=c&&h!=d&&h!=e&&h!=f&&h!=g)
												for(int i = 1; i <= 9; i++)//9
													if(i!=a&&i!=b&&i!=c&&i!=d&&i!=e&&i!=f&&i!=g&&i!=h){
														
														if((a*100+b*10+c)*2 == (d*100+e*10+f) && (a*100+b*10+c)*3 == (g*100+h*10+i)){
															System.out.println((a*100+b*10+c)+" "+(d*100+e*10+f)+" "+(g*100+h*10+i));
														}
													}
		
		


	}

}

在这里插入图片描述

发布了86 篇原创文章 · 获赞 3 · 访问量 1386

猜你喜欢

转载自blog.csdn.net/wnamej/article/details/105446228