2017蓝桥杯javaC组模拟题3

题目:猜算式

你一定还记得小学学习过的乘法计算过程,比如:

273
x 15


1365
273


4095

请你观察如下的乘法算式

***

x ***

***  




星号代表某位数字,注意这些星号中,
0~9中的每个数字都恰好用了2次。
(如出现因字体而产生的对齐问题,请参看图p1.jpg)

请写出这个式子最终计算的结果,就是那个5位数是多少?

注意:只需要填写一个整数,不要填写任何多余的内容。比如说明文字。

package lanqiaoMoNiC;

/**
 * 
 * @author dgw
 * @category 猜算式
 */
public class C {

    // 出现记录次数
    private static int[] numcount;
    // 对数字进行截断
    private static String of;
    // 保存两个中间结果
    private static char[] ch;
    private static char[] ch2;

    public static void main(String[] args) {
        for (int i = 100; i <= 999; i++)
            for (int j = 100; j <= 999; j++) {
                numcount = new int[10];
                int result = i * j;
                splitCount(i);
                splitCount(j);
                ch2 = ch.clone();
                for (int k = 0; k < 3; k++) {
                    int val = (ch2[k] - '0') * i;
                    splitCount(val);
                }
                splitCount(result);
                if (isOk()) {
                    System.out.println(i + "*" + j + '=' + result);
                }
                
            }

    }

    private static boolean isOk() {
        for (int i = 0; i <= 9; i++) {
            if (numcount[i] != 2) {
                return false;
            }
        }
        return true;
    }

    private static void splitCount(int number) {
        of = String.valueOf(number);
        ch = of.toCharArray();
        for (int i = 0; i < ch.length; i++) {
            numcount[ch[i] - '0']++;
        }
    }

}

答案:179*224=40096

你可能感兴趣的:(2017蓝桥杯javaC组模拟题3)