猜算式

猜算式,第1张

看下面的算式

□□ x □□ = □□ x □□□

它表示:两个两位数相乘等于一个两位数乘以一个三位数。

如果没有限定条件,这样的例子很多。

但目前的限定是:这9个方块,表示1~9的9个数字,不包含0。
该算式中1至9的每个数字出现且只出现一次!

比如:
46 x 79 = 23 x 158
54 x 69 = 27 x 138
54 x 93 = 27 x 186
.....

请编程,输出所有可能的情况!

import java.util.ArrayList;

import java.util.List;



public class ChessNum {
	static List<Integer> list;

	static int one,two,three,four;
	static int a,b,c,d,e,f,g,h,z;


	public static void main(String[] args) {
		list = new ArrayList<Integer>();
		
		getList();
		for (int i = 1; i <= 9; i++) {

			a = list.get(i);
			list.set(i, 0);
			for (int j = 1; j <= 9; j++) {

				if (list.get(j) != 0) {
					b = list.get(j);
					list.set(j, 0);
					for (int k = 1; k <= 9; k++) {

						if (list.get(k) != 0) {
							c = list.get(k);
							list.set(k, 0);
							for (int l = 1; l <= 9; l++) {

								if (list.get(l) != 0) {
									d = list.get(l);
									list.set(l, 0);
									for (int m = 1; m <= 9; m++) {

										if (list.get(m) != 0) {
											e = list.get(m);
											list.set(m, 0);
											for (int n = 1; n <= 9; n++) {

												if (list.get(n) != 0) {
													f = list.get(n);
													list.set(n, 0);
													for (int o = 1; o <= 9; o++) {

														if (list.get(o) != 0) {
															g = list.get(o);
															list.set(o, 0);
															for (int p = 1; p <= 9; p++) {

																if (list.get(p) != 0) {
																	h = list.get(p);
																	list.set(p,
																			0);
																	for (int q = 1; q <= 9; q++) {

																		if (list.get(q) != 0) {
																			z = list.get(q);
																			list.set(
																					q,
																					0);
																			if(builtOne(a, b)*builtTwo(c,d)==builtThree(e, f)*builtFour(g, h, z))
																			{
																
																			System.out.println(builtOne(a, b)+"x"+builtTwo(c,d)+"="+builtThree(e, f)+"x"+builtFour(g, h, z));
																			}
																		}
																		
																	}
																	addList(list);
																	list.set(i,0);
																	list.set(j,0);
																	list.set(k,0);
																	list.set(l,0);
																	list.set(m,0);
																	list.set(n,0);
																	list.set(0,0);
																	}

															}
															addList(list);
															list.set(i,0);
															list.set(j,0);
															list.set(k,0);
															list.set(l,0);
															list.set(m,0);
															list.set(n,0);
															}

													}
													addList(list);
													list.set(i,0);
													list.set(j,0);
													list.set(k,0);
													list.set(l,0);
													list.set(m,0);
													}

											}

											addList(list);
											list.set(i,0);
											list.set(j,0);
											list.set(k,0);
											list.set(l,0);
											}

									}

									addList(list);
									list.set(i,0);
									list.set(j,0);
									list.set(k,0);
									}

							}

							addList(list);
							list.set(i,0);
							list.set(j,0);
							}

					}
				
				
					addList(list);
					list.set(i,0);
					}

			}

			addList(list);
		}

	}
	public static void addList(List<Integer> list)
	{
		for (int r = 1; r <= 9; r++) {
			list.set(r, r);

		}
	}
	private static void getList() {
		for(int i=0;i<=9;i++)
		{
			list.add(i,i);
	
		}
		
	}
	public static int builtOne(int a,int b)
	{
		return a*10+b;
	}
	public static int builtTwo(int a,int b)
	{
		return a*10+b;
	}
	public static int builtThree(int a,int b)
	{
		return a*10+b;
	}
	public static int builtFour(int a,int b,int c)
	{
		return a*100+b*10+c;
	}
	

}

结果:存在重复,这个暴力运算实在是让人头晕
46x79=23x158
54x69=27x138
54x93=27x186
56x73=14x292
58x67=29x134
58x69=23x174
58x73=29x146
58x96=32x174
63x74=18x259
64x79=32x158
67x58=29x134
69x54=27x138
69x58=23x174
73x56=14x292
73x58=29x146
73x96=12x584
74x63=18x259
76x98=14x532
79x46=23x158
79x64=32x158
79x84=12x553
84x79=12x553
93x54=27x186
96x58=32x174
96x73=12x584
98x76=14x532

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/2084040.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-07-22
下一篇 2022-07-22

发表评论

登录后才能评论

评论列表(0条)

保存