我正在尝试为Kaprekar数字编写一个快速解决方案,向我的一个朋友展示在Python中实现类似这样的事情是多么容易。我知道如何做所有的步骤,除了以字符串形式遍历方形数字。例如45是卡布列克数,因为在蟒蛇我怎么能遍历一个字符串分裂它在不同的地方,因为我去?
45 ** 2 = 2025年20 + 25 = 45
我想写的是,将采取的结果码45 ** 2 = 2025让我遍历的组合等
[ '2', '025']
[ '20', '25']
[ '202', '5']
我正在尝试为Kaprekar数字编写一个快速解决方案,向我的一个朋友展示在Python中实现类似这样的事情是多么容易。我知道如何做所有的步骤,除了以字符串形式遍历方形数字。例如45是卡布列克数,因为在蟒蛇我怎么能遍历一个字符串分裂它在不同的地方,因为我去?
45 ** 2 = 2025年20 + 25 = 45
我想写的是,将采取的结果码45 ** 2 = 2025让我遍历的组合等
[ '2', '025']
[ '20', '25']
[ '202', '5']
>>> s = '2025'
>>> for i in range(1, len(s)):
... print s[:i], s[i:]
...
2 025
20 25
202 5
准确地说,我打算在工作之前分心。 – 2011-06-06 21:30:19
完美,谢谢! – Gekitsuu 2011-06-06 21:39:28
我会花一些额外的天炼狱回答已经伊格纳西奥回答数学问题,但你也可以尝试用一些变种:
>>> a = 2025
>>> for i in range(1,4):
... print a/10**i, a % 10**i
...
202 5
20 25
2 25
我测试了这个,它也可以工作,我喜欢Ignacio的解决方案只是为了可读性 – Gekitsuu 2011-06-08 20:04:02
感谢参考卡布列克数。这启发了新的Rosetta Code任务:http://rosettacode.org/wiki/Kaprekar_numbers – Paddy3118 2011-06-07 07:47:01