二、马虎的算式

【解析】:暴力穷举即可 枚举每个位上的数字、组合判断、暴力穷举

【答案】:142

方法一:暴力穷举

package com.kuang.Test;
public class Test{
    public static void main(String[] args) {
        int ans = 0;
        for(int a = 1; a < 10; a++) {
            for(int b = 1; b < 10; b++) {
                if(b != a) for(int c = 1; c < 10; c++) {
                    if(c != a && c != b) for(int d = 1; d < 10; d++) {
                        if(d != a && d != b && d != c) for(int e = 1; e < 10; e++) {
                            if(e != a && e != b && e != c && e != d) {
                                if((a*10+b)*(c*100+d*10+e) == (a*100+d*10+b)*(c*10+e)) {
                                    ans++;
                                    //System.out.printf("(%d*10+%d)*(%d*100+%d*10+%d) == (%d*100+%d*10+%d)*(%d*10+%d)\n", a, b, c, d, e, a, d, b, c, e);
                                }
                            }
                        }
                    }
                }
            }
        }
        System.out.println(ans);
    }

}

方法二:暴力穷举

package com.kuang.Test;

public class Test {

    public static void main(String[] args) {
        int sum=0;
        for(int a = 1; a < 10; a++)
            for(int b = 1; b < 10; b++)
                for(int c = 1; c < 10; c++)
                    for(int d = 1; d < 10; d++)
                        for(int e = 1; e < 10; e++)
                            if(a != b && a != c && a != d && a != e && b != c && b != d && b != e && c != d && c != e && d != e)
                                if((a*10+b)*(c*100+d*10+e) == (a*100+d*10+b)*(c*10+e))
                                    sum++;
        System.out.println(sum);
    }

}

方法二没有方法一运行的快,方法一每次都去重,可以少很多次循环