2015年蓝桥杯省赛JavaB组真题---三羊献瑞

观察下面的加法算式:

在这里插入图片描述

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

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

1085

本题有两种解法:
第一个是暴力破解
循环循环再循环…
四位数加四位数等于五位数 那么“三”一定是数字 1 其他汉字分别用字母代表,多次循环后判断相加是否相等
真·暴力杯

package _15zhenti;

public class three {

	public static void main(String[] args) {
		// 祥瑞生辉+三羊献瑞=三羊生瑞气
		//  祥 瑞 生 辉 羊 献 气
		int a, b, c, d, e, f, g;
		for (a = 2; a <= 9; a++) {
			for (b = 0; b <= 9; b++) {
				for (c = 0; c <= 9; c++) {
					for (d = 0; d <= 9; d++) {
						for (e = 0; e <= 9; e++) {
							for (f = 0; f <= 9; f++) {
								for (g = 0; g <= 9; g++) {
									if (a != b && a != c && a != d && a != e && a != f && a != g && b != c && b != d
											&& b != e && b != f && b != g && c != d && c != e && c != f && c != g
											&& d != e && d != f && d != g 
											&& e != f && e != g 
											&& f != g 
											&& b != 1&& c != 1 && d != 1 && e != 1 && f != 1 && g != 1) {
										int x = a * 1000 + b * 100 + c * 10 + d;
										int y = 1 * 1000 + e * 100 + f * 10 + b;
										int sum = 1 * 10000 + e * 1000 + c * 100 + b * 10 + g;
										if (sum == x + y) {
											System.out.println(y);
										}
									}
								}
							}
						}
					}
				}
			}
		}
	}
}

第二种 数学思想计算一下 因为是填空题嘛,敲代码有点费力,还容易写错,计算一下也很快的。
在这里插入图片描述
“三”是1,“三”+“祥” 一定进位了
后面的“瑞”+“羊”如果进位,“祥”是9,“羊”是1,和“三”一样——不成立;“祥”是8,“羊”是0,“瑞”需要大于9才能进位——不成立
后面的“瑞”+“羊”没有进位,“祥”是9,“羊”是0,没有问题
“生”+“献”如果没有进位,“瑞”等于“生”——不成立
所以“瑞”+1=“生” 设“瑞”=x “生”=x+1 “献”=y
如果后面没有进位 x+1+y=10+x y=9 和“祥”重复了 ——不成立,所以一定进位了 x+1+y+1(进位的1)=10+x y=8
“献”是8
此时设瑞=x,辉=y,气=z。
试数字
x=2时 x+y>=10,y>=8 而8,9已经存在—— 不成立
x=3时 x+y>=10,y>=7 8,9已经存在 也只能为7,但 x+y=3+7+10 z应为0 因0已经存在—— 不成立
x=4时 x+y>=10,y>=6 8,9已经存在 y可为6,7 当为6时z=0—— 不成立 当为7时 z=1 不成立
x=5时 x+y>=10,y>=5 8,9已经存在 y为7时 z为2 此时总式成立
所以得出结果为 9567+1085=10652
得出三样献瑞 为1085

两种不同的方法都可以使用,第二种方法虽然说了很多,但是自己想的时候很快
无论使用哪种方法,只要最后把题目解出来,就是正确的

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值