第七届蓝桥杯JAVA语言B组_凑算式

题目:凑算式

     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循环让计算机对所有答案进行尝试,最后进行输出,当然此种代码也是可以优化的

暴力破解可以引用两个函数来实现,通过递归,实现判断,具体实现方法就不赘述了。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值