用C语言验证 “6174黑洞之谜”?

用C语言验证 “6174黑洞之谜”?

各位,今儿是元宵节,虽然在疫情阴霾的笼罩下,很多地方依旧人心惶惶,但还是跟大伙道声元宵快乐。都说正月十五猜灯谜,今儿就跟大伙分享一个数字之谜——6174之谜,看看我们是怎么用C语言验证它的。

先简单介绍一些跟我们这个题目相关的背景知识。黑洞,我想不少人都听说过,意思就是宇宙中的黑洞可以将任何物质,以及运行速度最快的光牢牢吸住,不使它们逃脱。数学黑洞也是如此,也就是对于规定的数字来说,无论怎样设值,在规定的处理法则下,最终都将得到固定的一个值,再也跳不出去了。而我们今天所说的“6174黑洞”就是这个意思,且听我们慢慢道来。

1955年,印度数学家卡普耶卡(D.R.Kaprekar)研究了对四位数的一种变换:任给出四位数k0,用它的四个数字由大到小重新排列成一个四位数m,再减去它的反序数rev(m),得出数k1=m-rev(m)。然后,继续对k1重复上述变换,得数k2。如此进行下去,卡普耶卡发现,无论k0是多大的四位数, 只要四个数字不全相同,最多进行7次上述变换,就会出现四位数6174。这就是数学史上著名的“6174猜想”,也称为6174数字黑洞”,以上计算过程称为卡普雷卡尔运算,这个现象称归敛。

当然,这是4个数的情况,当数字个数为3的时候,循环值为495,也是著名的数学黑洞数字。今天我们只要想跟大家说的是如何用C语言验证6174黑洞。

展开全文

那这个问题实际上抽象为:任意选一个四位数(数字不能全相同),把所有数字从大到小排列,再把所有数字从小到大排列,用前者减去后者得到一个新的数。重复对新得到的数进行上述操作,7步以内必然会得到6174。请用C语言进行验证,并求出经过几次变换得到6174。

其实与本题类似的情况在浙大PAT中曾经出现过,解决总体思路比较简单,主要涉及排序和数字放入数组进行计算的相关情况,代码我们下面给出一种供大家参考,非唯一解,各位有好的方法可以留言一起交流。

好了,就讲到这里吧,关于今天的6174问题对你有帮助吗?欢迎留言言论交流,感谢大家耐心阅读!

欢迎大家留言区讨论哦!

Wink !

2月编程语言排行榜 来了!

Linux 内核代码数达到 2700 万行量级!

盘点历史上著名的几大计算机病毒!!!

移动端的APP都是用什么编程语言写的?

过年啦,我们什么都不怕!

互联网迎战新型肺炎

39 个奇葩代码注释,看完笑哭了......

UNIX和Linux 之间到底是啥关系?

程序猿用C语言写给女友的一封情书。。。

指针函数,函数指针,有点懵圈了???

C语言斩获“2019年度最佳编程语言”

某汽车名企C语言经典面试题,值得一看!

一个经典且稍有难度的C面试题,值得一看!

对于 printf , 你确定你很熟?

空指针 到底是什么意思?

为什么用 if(0 == x) 而不是 if(x == 0) ?

sizeof 你真的弄明白了吗? 来看看这个例子 返回搜狐,查看更多

相关推荐

乐视云如何炼成弹性支撑百万级别直播流
皇冠365体育下载

乐视云如何炼成弹性支撑百万级别直播流

⏱️ 07-06 ⭐ 4784
php之mvc设计模式的原理和实现
皇冠365体育下载

php之mvc设计模式的原理和实现

⏱️ 02-18 ⭐ 129
如何选择适合的网卡驱动版本?
国际体育365

如何选择适合的网卡驱动版本?

⏱️ 01-03 ⭐ 6684