奇妙な分式---第5回ブルーブリッジカップ

1456 ワード

public class       {
	/*
	 *             ,           。  ,       : 1/4    8/5
	 *             ,       ,   :18/45 (   1.png)        ,    ,         ,    !
	 *     、     1~9         ,             ?             (       )。
	 *   ,       ,  :4/1    5/8       ,        。             ,2/2    3/3
	 *         ,      ! a1*a2/(b2*b1)=;
	 */

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		long start = System.currentTimeMillis();
		int a1, a2;//   
		int b1, b2;//   
		int count = 0;
		for (a1 = 1; a1 < 10; a1++) {
			for (b1 = 1; b1 < 10; b1++) {
				if (a1 == b1)
					continue;
				for (a2 = 1; a2 < 10; a2++) {
					for (b2 = 1; b2 < 10; b2++) {
						if (b2 == a2)
							continue;
						if (a1 * a2 * (b1 * 10 + b2) == b1 * b2
								* (a1 * 10 + a2)) {
							count++;
							print(a1 + "/" + b1 + "+" + a2 + "/" + b2 + "="
									+ (a1 * 10 + a2) + "/" + (b1 * 10 + b2));
						}
					}
				}
			}


		}
		print("  :" + count);
		long end = System.currentTimeMillis();
		print("     ,      " + ((end - start) / 1000.0) + " .");
	}


	public static void print(Object o) {
		System.out.println(o.toString());
	}


}

実行結果:
1/2+5/4=15/24 1/4+8/5=18/45 1/6+4/3=14/63 1/6+6/4=16/64 1/9+9/5=19/95 2/1+4/5=24/15 2/6+6/5=26/65 4/1+5/8=45/18 4/9+9/8=49/98 6/1+3/63/14 6/1+4/6=64/16 6/2+5/6=65/26 9/1+5/9=95/19