[求助]各位高手帮帮忙啊
将1到9这9个数不重复的分成三组进行编写,每组三个数字组成一个数字,要求3个3位数都是完全平方数,例如:361=19*19,529=23*23,784=28*28
希望各位高手踊跃发表看法,编一编
inmail:cuibo110@126.com
----------------解决方案--------------------------------------------------------
你是只想要个程序,还是想更深的探讨那???
----------------解决方案--------------------------------------------------------
我也想不出什么好办法,这是一个最笨的方法,从11到31,一个一个的找,你最好用一个数组来保存结果,然后进行判断,找出合适的数来
----------------解决方案--------------------------------------------------------
期待有更好的算法//
----------------解决方案--------------------------------------------------------
我要算法,大家把算法给我,谈论一下啊!
----------------解决方案--------------------------------------------------------
以下是引用逍遥自我在2004-12-24 14:03:30的发言:
我也想不出什么好办法,这是一个最笨的方法,从11到31,一个一个的找,你最好用一个数组来保存结果,然后进行判断,找出合适的数来
其实不对。是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组进行排列组合,这样组合以后的数字就不需要再判断数字是否重复了,只需要判断是否完全平方数就可以了。
----------------解决方案--------------------------------------------------------
我去!方法有很多,但实现起来就很麻烦,大家把程序写出来好吗?这样大家也好判断一下程序的好坏啊,你们说呢?
----------------解决方案--------------------------------------------------------
如果你只是想要源码,那么请发到《作业解答》,如果你想探讨问题,那么,拿出你的代码或思路。别人才会有兴趣参与.
----------------解决方案--------------------------------------------------------
----------------解决方案--------------------------------------------------------