去年的题这道题卡了一会 写一发博客记录下
凑算式
B DEF
A + --- + ------- = 10
C GHI
(如果显示有问题,可以参见【图1.jpg】)
这个算式中A~I代表1~9的数字,不同的字母代表不同的数字。
比如:
6+8/3+952/714 就是一种解法,
5+3/1+972/486 是另一种解法。
这个算式一共有多少种解法?
注意:你提交应该是个整数,不要填写任何多余的内容或说明性文字。
这道题看上去就知道是暴力膜. 重点就出现在跳出循环的过程.我就是在这里卡了许久.. 日了狗了. 贴一波代码
public class T6 {
public static void main(String[] args) {
int sum = 0 ;
for(int a = 1 ; a < 10 ; a ++)
{
for(int b = 1 ;b < 10 ;b ++)
{
if(a == b) continue;
for(int c = 1; c < 10 ; c ++)
{
if(a == c || b == c ) continue ;
for(int d = 1 ; d < 10; d ++)
{
if (a == d ||b == d|| c == d ) continue;
for(int e =1 ; e < 10 ; e ++)
{
if ( a == e ||b == e || c == e || d == e) continue;
for(int f = 1 ; f < 10; f ++)
{
if(a == f || b == f || c == f || d == f || e == f ) continue;
for(int g = 1 ; g< 10 ; g ++)
{
if(a == g ||b == g || c == g || d == g ||e == g || f== g) continue;
for (int h = 1 ; h < 10; h ++)
{
if (a == h || b ==h || c == h ||d == h ||e == h ||f == h||g == h) continue;
for(int i = 1 ; i < 10 ; i ++)
{
if (a == i||b == i ||c ==i ||d == i ||e == i ||f == i||g == i||h == i) continue;
if(a + b *1.0/c + (d*100 + e*10 + f )*1.0/(g*100 + h *10 +i) == 10)
sum ++;
}
}
}
}
}
}
}
}
}
System.out.println(sum);
}
}
就在最后一个for循环 我一开始写的是a + b/ c + (d*100+ e *10 + f )/(g*100 + h *10 + i ) == 10
显示的结果就是很大的数 到了最后才发现要乘1.0这个问题. 切记切记.