C语言编程题目2 卡布列克运算 问题描述 所谓卡布列克运算是指对任意一个四位数,只要它们各个位上的数字不完全相同,就有这
C语言编程
题目2 卡布列克运算
问题描述
所谓卡布列克运算是指对任意一个四位数,只要它们各个位上的数字不完全相同,就有这样的规律:
(1)把组成这个四位数的四个数字重新生成最大的四位数;
(2)把组成这个四位数的四个数字重新生成最小的四位数(若四个数字中含有0,则此四位数可小于四位);
(3)求出以上两位数之差,得到一个新的四位数。
重复以上过程,总能得到最后的结果是6174。
例如当输入1008后,会输出以下结果:
8100-18=8082
8820-288=8532
8532-2358=6174
试编写卡布列克运算的验证程序。
算法分析
根据题意,此问题可被分成以下三个模块来解决:
(1) 将一个四位数的每一位数字按从大到小(或从小到大)的顺序放到一个一维数组中;
(2) 将(1)中有序数组从左到右(或从右到左)组合成一个最大的四位数;
(3) 将(1)中有序数组从右到左(或从左到右)组合成一个最小的四位数;