[求助]各位高手帮帮忙啊
将1到9这9个数不重复的分成三组进行编写,每组三个数字组成一个数字,要求3个3位数都是完全平方数,例如:361=19*19,529=23*23,784=28*28
希望各位高手踊跃发表看法,编一编
inmail:cuibo110@126.com
其实不对。是13到31把。呵呵。
妹妹的问题太难了。我是菜菜,实在想不出来。我帮你问问我们这里的高手吧。
既而大家要讨论算法,我也说说我的意见,就不在此写程序了
第一种算法,是比较简单的,
组合后的数字最小是123,最大是987,所以开方以后最小是12(11....取大的),最大的平方数是31(31....取小的)
所以就用for循环从12到31(3个for循环嵌套),看他们平方以后的数字是否占全了1-9之间的数字,如果占全了就是一种结果
第二种方法,稍微复杂一些
用for循环从123到987(3个for循环嵌套),先判断这三个数字是否占全了1-9之间的数字,如果是继续判断这三个数字是否都是完全平方数,如果是就是一种结果。只是这种循环会影响效率(时间实在很短,因为循环次数很少,但如果次数多了时间就会以10的级数增加),可以有一种更复杂也更有效率的方法,有兴趣的可以试一下,就是把1-9这9个数组分成3组进行排列组合,这样组合以后的数字就不需要再判断数字是否重复了,只需要判断是否完全平方数就可以了。