2011-06-06 48 views
2

我正在尝试为Kaprekar数字编写一个快速解决方案,向我的一个朋友展示在Python中实现类似这样的事情是多么容易。我知道如何做所有的步骤,除了以字符串形式遍历方形数字。例如45是卡布列克数,因为在蟒蛇我怎么能遍历一个字符串分裂它在不同的地方,因为我去?

45 ** 2 = 2025年20 + 25 = 45

我想写的是,将采取的结果码45 ** 2 = 2025让我遍历的组合等

[ '2', '025']

[ '20', '25']

[ '202', '5']

+2

感谢参考卡布列克数。这启发了新的Rosetta Code任务:http://rosettacode.org/wiki/Kaprekar_numbers – Paddy3118 2011-06-07 07:47:01

回答

7
>>> s = '2025' 
>>> for i in range(1, len(s)): 
... print s[:i], s[i:] 
... 
2 025 
20 25 
202 5 
+1

准确地说,我打算在工作之前分心。 – 2011-06-06 21:30:19

+0

完美,谢谢! – Gekitsuu 2011-06-06 21:39:28

1

我会花一些额外的天炼狱回答已经伊格纳西奥回答数学问题,但你也可以尝试用一些变种:

>>> a = 2025 
>>> for i in range(1,4): 
...  print a/10**i, a % 10**i 
... 
202 5 
20 25 
2 25 
+0

我测试了这个,它也可以工作,我喜欢Ignacio的解决方案只是为了可读性 – Gekitsuu 2011-06-08 20:04:02