枚舉法_尋找三位數

題目:將數字 1~ 9 分成 3 個三位數,要求第 2 個三位數是第1個三位數的兩倍,第3個三位數是第1個的三倍。即假定m爲第 1個三位數,則第2個恰好爲2*m, 第3個爲 3*m,請輸出這幾個三位數。
輸入:第一個三位數的數字

輸出:滿足題目條件的所有三位數

下面展示:超級暴力的枚舉算法:

基本思路:

首先判斷一個數的每一位都不同,同時每一位不爲0,同時還要滿足 第 2 個三位數是第1個三位數的兩倍,第3個三位數是第1個的三倍

在判斷3個3位數每一位都不相同。全部採用IF語句,特別適合新手看。

然後在循環的時候,起始的數應該是123,結束的數應該是987

package 三位數;

public class 三位數 {

	public static void main(String[] args) {
		int a = 0;  //三個三位數
		int b = 0;
		int c = 0;
		for (int i = 123; i <= 987; i++) {
			int[] a1 = { 0, 0, 0 };
			for (int j = 123; j <= 987; j++) {
				int[] b1 = { 0, 0, 0 };
				for (int k = 123; k <= 987; k++) {
					int[] c1 = { 0, 0, 0 };
					a = i;
					b = j;
					c = k;
					if (c == (3 * a) && b == (2 * a)) {
						
						a1[0] = a / 100;           //分別表示a、b、c的每一位
						a1[1] = (a % 100) / 10;
						a1[2] = a % 10;

						b1[0] = b / 100;
						b1[1] = (b % 100) / 10;
						b1[2] = b % 10;

						c1[0] = c / 100;
						c1[1] = (c % 100) / 10;
						c1[2] = c % 10;

						if (a1[0] != a1[1] && a1[0] != a1[2] && a1[1] != a1[2]
								&& b1[0] != b1[1] && b1[0] != b1[2]
								&& b1[1] != b1[2] && c1[0] != c1[1]
								&& c1[0] != c1[2] && c1[1] != c1[2]
								&& a1[0] != 0 && a1[0] != 0 && a1[1] != 0
								&& b1[0] != 0 && b1[0] != 0 && b1[1] != 0
								&& c1[0] != 0 && c1[0] != 0 && c1[1] != 0) {
							if (a1[0] != b1[0] && a1[0] != b1[1]
									&& a1[0] != b1[2] && a1[1] != b1[0]
									&& a1[1] != b1[1] && a1[1] != b1[2]
									&& a1[2] != b1[0] && a1[2] != b1[1]
									&& a1[2] != b1[2] && a1[0] != c1[0]
									&& a1[0] != c1[1] && a1[0] != c1[2]
									&& a1[1] != c1[0] && a1[1] != c1[1]
									&& a1[1] != c1[2] && a1[2] != c1[0]
									&& a1[2] != c1[1] && a1[2] != c1[2]
									&& b1[0] != c1[0] && b1[0] != c1[1]
									&& b1[0] != c1[2] && b1[1] != c1[0]
									&& b1[1] != c1[1] && b1[1] != c1[2]
									&& b1[2] != c1[0] && b1[2] != c1[1]
									&& b1[2] != c1[2]) {
								System.out.println(a + " " + b + " " + c);
							}
						}
					}

				}
			}
		}
	}
}


/*
運行結果;
192 384 576
219 438 657
273 546 819
327 654 981
*/


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章