题 目:
将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循环,使可读性大大降低,可取之处是,能将所有可能的情况逐一遍历,最后得到的满足条件的个数比较有说服力