【题目】
小明是一个急性子,上小学的时候经常把老师写在黑板上的题目抄错。
有一次,老师出得题目是: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); } }