用Java解决数学问题:将123456789分别填在[ ] [ ] [ ] [ ] ×[ ]=[ ] [ ] [ ] [ ]使等式成立,且数字不允许重复

题  目:

将123456789分别填在[ ] [ ] [ ] [ ] ×[ ]=[ ] [ ] [ ] [ ]使等式成立,且数字不允许重复

 

解题思路:

思路1:

1.将1~9全部放入集合中,然后用Collections.shuffle(List list)随即排序;

2.排序完毕后,再用if判断是否结果符合条件

 

思路2:

1.将1~9依次放入括号中,每次放入时检验数字是否重复,循环9!次;

2.数字放完后,再用if判断是否结果符合条件

 

Java源代码如下:

 

思路1:

  

执行结果:

1738 x 4 = 6952
1963 x 4 = 7852

 

思路2:

  

执行结果:

找到满足条件的算术式如下:
第1组:1738 x 4 = 6952
第2组:1963 x 4 = 7852
总共计算了362880组数据
总共找到了2组满足条件的数据

 

总结:

思路1算法比较简单,但是无法准确知道是否将所有可能都遍历到了,所以结果的个数不太令人信服

思路2算法最为基础,但是使用9层for循环,使可读性大大降低,可取之处是,能将所有可能的情况逐一遍历,最后得到的满足条件的个数比较有说服力

 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值