三羊献瑞

观察下面的加法算式:

      祥 瑞 生 辉
  +   三 羊 献 瑞
-------------------
   三 羊 生 瑞 气

其中,相同的汉字代表相同的数字,不同的汉字代表不同的数字。

请你填写“三羊献瑞”所代表的4位数字(答案唯一),不要填写任何多余内容。

还是用最笨的方法,暴力!!!

将上面的汉字等式变成这样

    a  b  c  d

+  e  f   g  b

e  f   c   b  h

可知,

1、a和e不能从0开始穷举。

2、假设abcdefgb,分别表示987654328,那么它们相加的数撑死都不会超过20000,

连蒙带猜基本可以知道e肯定是1

3、现已知e为1,再假设efgb,分别表示1234,则abcd至少需要8766相加才可能越过10000(efcbh),

连蒙带猜基本可以知道a的范围在8-9之间

4、已知a在8-9,e为1,再假设abcd分别表示9876,efgb分表表示1543,两数相加撑死不会超过11xxx(efcbh),

所以可得f的范围在0-1之间

public class HashMapTest {
	public static void main(String[] args) {
		//a在8-9的范围之间
		for (int a = 8; a <= 9; a++) {
			for (int b = 0; b <= 9; b++) {
				for (int c = 0; c <= 9; c++) {
					for (int d = 0; d <= 9; d++) {
						//e为1
						for (int e = 1; e <= 1; e++) {
							//f在0-1的范围之间
							for (int f = 0; f <= 1; f++) {
								for (int g = 0; g <= 9; g++) {
									for (int h = 0; h <= 9; h++) {
										if (a != b && a != c && a != d && a != e && a != f && a != g && a != h && b != c && b != d && b != e
												&& b != f && b != g && b != h && c != d && c != e && c != f && c != g && c != h && d != e && d != f
												&& d != g && d != h && e != f && e != g && e != h && f != g && f != h && g != h)
											if (((a * 1000 + b * 100 + c * 10 + d) + (e * 1000 + f * 100 + g * 10 + b)) == (e * 10000 + f * 1000 + c
													* 100 + b * 10 + h)) {
												System.out.println((a * 1000 + b * 100 + c * 10 + d) + "      " + (e * 1000 + f * 100 + g * 10 + b)
														+ "     " + (e * 10000 + f * 1000 + c * 100 + b * 10 + h));
											}
									}
								}
							}
						}
					}
				}
			}
		}
	}
}
答案:1085

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值