B DEF
A + --- + ------- = 10
C GHI
(如果显示有问题,可以参见【图1.jpg】)
这个算式中A~I代表1~9的数字,不同的字母代表不同的数字。
比如:
6+8/3+952/714 就是一种解法,
5+3/1+972/486 是另一种解法。
这个算式一共有多少种解法?
注意:你提交应该是个整数,不要填写任何多余的内容或说明性文字。
结果:29
解析:本体有很多种解法,但是对于萌新小白来说可以尝试一下暴力破解。
public class S_Tree {
public static void main(String[] args) {
// TODO Auto-generated method stub
int n = 0;
int m = 0;
int sum = 0;
for(int a=1;a<10;a++)
for(int b=1;b<10;b++)
if(a != b)
for(int c=1;c<10;c++)
if(a!=c && b!=c)
for(int d=1;d<10;d++)
if(a!=d && b!=d && c!=d)
for(int e=1;e<10;e++)
if(a!=e && b!=e && c!=e && d!=e)
for(int f=1;f<10;f++)
if(a!=f && b!=f && c!=f && d!=f && e!=f)
for(int g=1;g<10;g++)
if(a!=g && b!=g && c!=g && d!=g && e!=g && f!=g)
for(int h=1;h<10;h++)
if(a!=h && b!=h && c!=h && d!=h && e!=h && f!=h && g!=h)
for(int i=1;i<10;i++)
if(a!=i && b!=i && c!=i && d!=i && e!=i && f!=i && g!=i &&h!=i)
{
n = 100*g + 10*h + i;
m = 100*d + 10*e + f;
if((10-a)*c*n == b*n + c*m)
{
sum++;
//System.out.println(a+b+c+d+e+f+g+h+i);
}
}
System.out.println(sum);
}
}
//暴力破解是指在解题时候不考虑具体的算法什么的,直接通过for循环让计算机对所有答案进行尝试,最后进行输出,当然此种代码也是可以优化的
暴力破解可以引用两个函数来实现,通过递归,实现判断,具体实现方法就不赘述了。