二、马虎的算式
【解析】:暴力穷举即可 枚举每个位上的数字、组合判断、暴力穷举
【答案】: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);
}
}
方法二没有方法一运行的快,方法一每次都去重,可以少很多次循环