2011年5月26日 星期四

263 - Number Chains

給定一個整數,你必須以下列的方式產生出另一個整數:

  1. 將該數的每一個位數由大到小排列。
  2. 將該數的每一個位數由小到大排列。
  3. 將上述第一步驟所得的數減掉第二步驟所得的數,產生另一個數。
  4. 重複上述步驟,直到出現重複的數字為止。
注意,0是合法的數值。在找到重複出現的數字之前,所出現的不同數值的個數,稱作"數列的長度"(the length of the chain)。你必須寫一個程式讀取一個數值,並輸出該數值所產生出"數列的長度"。

Input and Output

輸入資料會有許多正整數,皆小於10^9,每個正整數一列,以0做為結束。輸入檔案最多有5000個數值。

請輸出以輸入值開始的"數列的長度",並以Sample Output的格式輸出每一個數值。不會有數列長度超過1000的數值。

Sample Input

123456789
1234
444
0

Sample Output

Original number was 123456789
987654321 - 123456789 = 864197532
987654321 - 123456789 = 864197532
Chain length 2

Original number was 1234
4321 - 1234 = 3087
8730 - 378 = 8352
8532 - 2358 = 6174
7641 - 1467 = 6174
Chain length 4

Original number was 444
444 - 444 = 0
0 - 0 = 0
Chain length 2
(注意這裡有一空行)

注意,每一組輸出後面要多一列空行喔~(包含最後一組)
原文出處

沒有留言:

張貼留言