以下是我正在做的问题中“奇怪数字”的属性:奇怪的数字
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 –