2011-06-06 56 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