2016年蓝桥杯省赛——凑算式

去年的题这道题卡了一会 写一发博客记录下


凑算式

     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这个问题.  切记切记.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值