天天看點

算法學習之路|數字黑洞

給定任一個各位數字不完全相同的4位正整數,如果我們先把4個數字按非遞增排序,再按非遞減排序,然後用第1個數字減第2個數字,将得到一個新的數字。一直重複這樣做,我們很快會停在有“數字黑洞”之稱的6174,這個神奇的數字也叫Kaprekar常數。

例如,我們從6767開始,将得到

7766 - 6677 = 1089

9810 - 0189 = 9621

9621 - 1269 = 8352

8532 - 2358 = 6174

7641 - 1467 = 6174

... ...

現給定任意4位正整數,請編寫程式示範到達黑洞的過程。

輸入格式:

輸入給出一個(0, 10000)區間内的正整數N。

輸出格式:

如果N的4位數字全相等,則在一行内輸出“N - N = 0000”;否則将計算的每一步在一行内輸出,直到6174作為差出現,輸出格式見樣例。注意每個數字按4位數格式輸出。

輸入樣例1:

6767

輸出樣例1:

輸入樣例2:

2222

輸出樣例2:

2222 - 2222 = 0000

我的思路:

int(reverse(string(C)))-int(string(C))

int()用字元流轉化即可。

繼續閱讀