题目描述
卡布列克是一位数学家,他在研究数字时发现:任意一个不是用完全相同数字组成的四位数,如果对它的每位数字重新排序,组成最大的数和最小的数(位数不足时前导补零),用大数减小数,重复操作,最后一定会得到一个固定的数:6174,这就是卡布列克常数。
示例过程(输入 4321):
4321−1234=3087
8730−0378=8352
8532−2358=6174
7641−1467=6174(之后恒为 6174)
对于任意 K 位数做同样操作,往往不会收敛到固定值,而是会在若干个数字之间循环,这个循环就叫做卡布列克圆舞曲。
例如对 5 位数 54321 操作:
54321−12345=41976
97641−14679=82962
98622−22689=75933
97533−33579=63954
96543−34569=61974
97641−14679=82962(开始循环)
因此循环节为 82962 75933 63954 61974,按顺序输出即可。
输入格式
第一行输入一个正整数 k,表示数字的位数(保证 k≤18)。
第二行输入一个 k 位正整数 N,即操作的起始数(保证 N 的各位数字不全相同)。
输出格式
输出该起始数的卡布列克循环的完整循环节,循环内数字按出现顺序用空格分隔。如果收敛到固定值(循环节长度为 1),直接输出该值即可。
5
54321
82962 75933 63954 61974
数据规模与约定
对于 100% 的数据:
1≤k≤18
输入的 N 为合法的 k 位正整数,各位数字不全相同
操作过程中所有中间值均为不超过 k 位的非负整数,补前导零后进行排序
子任务 1(30 分):k≤4(保证收敛到 6174)
子任务 2(30 分):k≤9
子任务 3(40 分):没有特殊限制