以下是我正在做的問題中「奇怪數字」的屬性:奇怪的數字
1)它們的偶數個小數位(無前導零)。
2)將左半部分定義爲原始數字的最高有效半數所代表的數字,右半部分代表最低有效半數所代表的數字。右半部分可能有前導零。奇數是它的一半的平方和:81 =(8 + 1)^ 2
這裏是一些其他例子:998001 =(998 + 001)^ 2,3025 =(30 + 25)^ 2
如何編寫一個程序,該程序按遞增順序列出所有不超過18位十進制數的奇怪數字?
我明白如何通過查看所有可能性(2位數字,4位數字,6位數字,...,18位數字)來完成此操作,但這需要幾天時間才能運行。是否有任何模式,所以我可以在幾秒鐘內輸出所有奇怪的數字?我更喜歡Java中的答案,但僞代碼也可以。
不打算爲你做功課,但想想生成奇怪的數字,而不是搜索它們:-) – mmigdol
問題出自昨天的編程比賽,我的團隊在12中獲得第4名。這是其中一個我們無法解決的問題。 –
Google是你的朋友。看看http://mrob.com/pub/math/seq-kaprekar。html和http://rosettacode.org/wiki/Kaprekar_numbers –