【题目】
小明是一个急性子,上小学的时候经常把老师写在黑板上的题目抄错。
有一次,老师出得题目是:36*495=? 他却给抄成了:396*45=?
但结果却很戏剧性,他的答案竟然是对的!!
因为36*495=396*45=17820
类似这样的巧合情况可能还有很多,
比如:27*594=297*54
假设a b c d e代表1-9不同的5个数字(注意是各不相同的数字,且不含0)
能满足形如:ab*cde=adb*ce这样的算式一共有多少种呢?
【分析】
构造5个元素的数组,从9个数字的数组中取数字,找出所有的可能性。
注意递归和回溯。
import java.math.BigInteger;
import java.util.*;
public class Lanq {
public static void main(String[] args) {
组素数();
}
public static void 组素数() {
Scanner sc = new Scanner(System.in);
int a=1,b=1,c=1,d=1,e=1;
Set s=new TreeSet();
int cnt=0;
for(a=1;a<=9;a++)
for(b=1;b<=9;b++)
for(c=1;c<=9;c++)
for(d=1;d<=9;d++)
for(e=1;e<=9;e++)
{
s.clear();
int t1=a*10+b;
int t2=c*100+d*10+e;
int t3=a*100+d*10+b;
int t4=c*10+e;
if(t1*t2==t3*t4){
s.add(a);s.add(b);s.add(c);s.add(d);s.add(e);
if(s.size()==5){
System.out.println(a+""+b+""+c+""+d+""+e);
cnt++;
}
}
}
System.out.println(cnt);
}
}