问题 AK: Number Chains

内存限制:128 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:35 解决:12

题目描述

Given a number, we can form a number chain by 
(1) arranging its digits in descending order
(2) arranging its digits in ascending order
(3) subtracting the number obtained in (2) from the number obtained (1) to form a new number
(4) and repeat these steps unless the new number has already appeared in the chain

Note that 0 is a permitted digit. The number of distinct numbers in the chain is the length of the chain. You are to write a program that reads numbers and outputs the number chain and the length of that chain for each number read.

输入

The input consists of a sequence of positive numbers, all less than  1000000000 , each on its own line, terminated by 0. The input file contains at most 5000 numbers.

输出

The output consists of the number chains generated by the input numbers, followed by their lengths exactly in the format indicated below. After each number chain and chain length, including the last one, there should be a blank line. No chain will contain more than 1000 distinct numbers.

样例输入 复制

123456789
1234
444
0

样例输出 复制

123456789 -> 864197532 -> 864197532
Chain length: 2

1234 -> 3087 -> 8352 -> 6174 -> 6174
Chain length: 4

444 -> 0 -> 0
Chain length: 2

来源/分类