Google方程式

/ java / 没有评论 / 348浏览

有一个字符组成的等式:WWWDOT – GOOGLE = DOTCOM,每个字符代表一个0-9之间的数字,WWWDOT、GOOGLE和DOTCOM都是合法的数字,不能以0开头。请找出一组字符和数字的对应关系,使它们互相替换,并且替换后的数字能够满足等式。这个字符等式是Google公司能力倾向测试实验室的一道题目,这种题目主要考察人的逻辑推导能力和短期记忆能力,通常棋下的好的人解决这类问题会更得心应手一些(飞行棋例外)。

Java代码:

 public class Test006 {
	public static void main(String[] args) {
		int wwwdot = 0;
		int google = 0;
		int dotcom = 0;
		int temp = 0;
		long start = System.currentTimeMillis();
		for(int w=1;w<=9;w++){
			for(int d=1;d<=9;d++){
				if(d==w)
					continue;
				for(int o=0;o<=9;o++){
					if(o==d||o==w)
						continue;
					for(int t=0;t<=9;t++){
						if(t==o||t==d||t==w)
							continue;
						for(int g=1;g<=9;g++){
							if(g==t||g==o||g==d||g==w)
								continue;
							for(int l=0;l<=9;l++){
								if(l==g||l==t||l==o||l==d||l==w)
									continue;
								for(int e=0;e<=9;e++){
									if(e==l||e==g||e==t||e==o||e==d||e==w)
										continue;
									for(int c=0;c<=9;c++){
										if(c==e||c==l||c==g||c==t||c==o||c==d||c==w)
											continue;
										for(int m=0;m<=9;m++){	
											if(m==c||m==e||m==l||m==g||m==t||m==o||m==d||m==w)
												continue;
											int tem[] = new int[9];
											tem[0] = w;
											tem[1] = d;
											tem[2] = o;
											tem[3] = t;
											tem[4] = g;
											tem[5] = l;
											tem[6] = e;
											tem[7] = c;
											tem[8] = m;
											wwwdot = w*100000 + w*10000 + w*1000 + d*100 + o*10 + t;
											google = g*100000 + o*10000 + o*1000 + g*100 + l*10 + e;
											dotcom = d*100000 + o*10000 + t*1000 + c*100 + o*10 + m;
											temp = wwwdot - google;
											if(temp==dotcom)
												System.out.println(wwwdot + " - " + google + " = " + dotcom);
										}
									}
								}
							}
						}
					}
				}
			}
		}
		long end = System.currentTimeMillis();
		System.out.println("程序所用时间:" + (end-start) + "毫秒");

	}
}

程序结果:

777589 - 188103 = 589486

777589 - 188106 = 589483

程序所用时间:164毫秒

点击这里给我发消息
嘿!有什么能帮到您的吗?