问题6842--6174问题

6842: 6174问题

[命题人 : ]
时间限制 : 1.000 sec  内存限制 : 256 MiB

题目描述

【题目描述】

假设你有一个各位数字互不相同的四位数,把所有数字从大到小排序后得到a,从小到大排序后得到b,然后用a - b替换原来这个数,并且继续操作。例如,从1234出发,依次可以得到4321-1234=3087,8730-378=8352,8532-2358=6174。有趣的是,7641-1467=6174,回到了它自己。
现在你要从1234~9876之间的所有各位数字互不相同的四位数中,找到操作序列(如:1234 -> 3087 -> 8352 -> 6174 -> 6174就是一个操作序列)即中间数字的个数的最大值,并且输出第一个到达该最大值的四位数,与此同时还应输出在1234~9876之间一共有多少个四位数满足要求,在最后一行输出第一个到达该数的四位数的操作序列。(输出共三行)

【输出】

第一行:输出中间数字个数的最大值,如1234,操作序列1234 -> 3087 -> 8352 -> 6174 -> 6174中间数字个数为5;
第二行:输出中间数字的个数最多的第一个四位数,如1234;
第三行:输出1234~9876之间有多少个数字在循环过程中中间数字的个数等于中间数字个数的最大值;
第四行:输出中间数字的个数最多的第一个四位数循环过程中所有中间数字,并输出回车;


假如是1234,则输出格式为:
5
1234
XXXX(一个四位数)
1234 -> 3087 -> 8352 -> 6174 -> 6174

【样例输出】

8 1235 1433 1235 -> 4086 -> 8172 -> 7443 -> 3996 -> 6264 -> 4176 -> 6174 -> 6174

来源/分类

指针