時間限制 2000 ms ・ 記憶體限制 256 MB
題目描述
由一個正整數開始,反覆進行:將其數字降冪排列得到 A,再將同一批數字升冪排列得到 B,計算 A−B 作為下一個數。零可以作為數字,排列後的前導零不影響數值。
印出每次計算,直到新算出的數已在先前算出的結果中出現。包含最後這次重複結果的計算步數就是輸出所需的鏈長。起始數不預先放入「已算出的結果」集合。
輸入格式
每行有一個正整數,小於 10⁹;輸入最多 5000 個數,以 0 結束。每條鏈至多有 1000 個不同數字。
輸出格式
每筆先印 Original number was N,接著每一步印 A - B = C,最後印 Chain length L。每條鏈後另印一個空白行,最後一筆也相同。
範例測資
範例輸入 1
123456789 1234 444 0
範例輸出 1
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
請先登入後再提交程式碼
討論與題解
載入討論區…