蓝桥七届 凑算式 JAVA

    B      DEF
A + --- + ------- = 10
     C      GHI    
     
这个算式中A~I代表1~9的数字,不同的字母代表不同的数字。

比如:
6+8/3+952/714 就是一种解法,
5+3/1+972/486 是另一种解法。
这个算式一共有多少种解法?

思路:第一想法就是九层枚举,判断一下,但是有一点需要注意,除法这块要转换小数类型。答案是29!!

public class Main {
	public static void main(String[] args) {
		int ans = 0;
		for (int a = 1; a < 10; a++) {
			for (int b = 1; b < 10; b++) {
				for (int c = 1; c < 10; c++) {
					for (int d = 1; d < 10; d++) {
						for (int e = 1; e < 10; e++) {
							for (int f = 1; f < 10; f++) {
								for (int g = 1; g < 10; g++) {
									for (int h = 1; h < 10; h++) {
										for (int i = 1; i < 10; i++) {
											if ((a != b && a != c && a != d && a != e && a != f && a != g && a != h && a != i)
													&& (b != c && b != d && b != e && b != f && b != g && b != h && b != i)
													&& (c != d && c != e && c != f && c != g && c != h && c != i)
													&& (d != e && d != f && d != g && d != h && d != i)
													&& (e != f && e != g && e != h && e != i)
													&& (f != g && f != h && f != i)
													&& (g != h && g != i)
													&& (h != i)) {
												int up = d * 100 + e * 10 + f;
												int down = g * 100 + h * 10 + i;
												if (a + (b * 1.0 / c)+ (up * 1.0) / (down * 1.0) == 10) {
													ans++;
												}
											}
										}
									}
								}
							}
						}
					}
				}
			}
		}
		System.out.println(ans);
	}
}

下面再用全排列解法搞一遍。

public class Main{
	static int ans = 0;
	public static void main(String[] args) {
		int[] arr = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
		swap(arr, 0);
		System.out.println(ans);
	}
	public static void swap(int[] arr, int n) {
		if (n == arr.length) {
			if (arr[0] + ((double) arr[1] / arr[2]) + 
					     ((double) arr[3] * 100 + arr[4] * 10 + arr[5]) / (arr[6] * 100 + arr[7] * 10 + arr[8]) == 10) {
				ans++;
			}
		} else {
			for (int i = n; i < arr.length; i++) {
				int a = arr[n]; arr[n] = arr[i]; arr[i] = a;
				swap(arr, n + 1);
				int b = arr[n]; arr[n] = arr[i]; arr[i] = b;
			}
		}
	}
}

小剧场:笑一笑,都会过去的…

发布了202 篇原创文章 · 获赞 149 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/weixin_43771695/article/details/105216746