第二十三讲 (数字黑洞6174)

一月 31, 2019

在人教版小学《数学(五年级上册)》中就介绍了“数字黑洞6174”,它是印度数学家卡普雷卡尔于1949年发
现的,又称为“卡普雷卡尔黑洞”。这个数字黑洞在运算过程中需要对个数位重新排列和求取差值,所以也被
称为“重拍求差黑洞”。

卡普雷卡尔黑洞(数字黑洞6174)的规则如下:

取任意一个不完全相同的4位数,将组成该数的4个数字由大到小排列组成一个大的数,又由大到小排列成一个
小的数,再用大树减去小数得到一个差值,之后对差值重复前面的变换步骤,最终会掉入数字黑洞6147之中。

例如:整数8848。对其各位数重排后得到大数8884和小数4888,用大数减去小数得到差值为3996。之后对整数
3996按上述规则继续变换的过程为:9963-3699=6264 6642-2466=4176 7641-1467=6174。经过四次变换,整数
8848就掉进数字黑洞6174之中。

编程思路

根据卡普雷卡尔黑洞的规则,设计验证这个数字黑洞的程序。该程序可分解为以下几个部分。

(1)入口程序。用于接受用户输入的4位整数,并将该数放入数字黑洞。
(2)数字黑洞6174模块。该模块用于按照数字黑洞6174的规则对输入的整数进行运算,直到最后得到6174。
(3)分解数字模块。该模块用于将用户输入的4位整数的各位数字分解后存放到一个“数组”列表中。
(4)取大数模块。该模块用于取得重排后的最大数。
(5)取小数模块。该模块用于取得重排后的最小数。
(6)选择排序模块。该模块使用选择排序算法对“数组”列表中的数字按照从大到小的排列顺序。

程序清单:

入口程序

数字黑洞6174模块

分解数字模块

取大数模块

 

取小数模块

选择排序模块

 

单击绿旗运行程序,输入一个整数1688。这个数字经过5次变换后,使整数1688掉入数字黑洞6174底部。

试一试

输入一些4位不完全相同的整数进行验证,看看它们经过多少次变换后会掉入数字黑洞6174的底部。

能力橙版权所有

请勿转载

少儿编程小课:第五十七课(潜水艇)第二十四讲 (数字黑洞153)