使用C语言验证“ 6174数学黑洞之谜”吗?

时间:2024-03-29

选择不完全相同(不像1111)的4个数字,减少“最大排列”。

到“最小排列”; (例如8753-3578),重复此操作,您将获得相同的结果:6174。

动作最多不会超过7次!让我们看一下这五个实验的结果。

请输入一个不同的四位数数字:3758。

输入的四位数数字是:3758第一次:8753-3578 = 5175第二次:7551-1557 = 5994三次:9954-4599 = 5355第四次:5553-3555 = 1998第五次:9981-1899 = 8082第六次:8820-288 = 8532第七次:8532-2358 = 6174最大减少量的7倍后,请为操作输入一个不同的四位数数字:2517四位数数字输入的是:2517第一次:7521-1257 = 6264第二次:6642-2466 = 4176三次:7641-1467 = 6174通过请为3个最大和最小动作输入一个不同的四位数:6915四位数输入的数字是:6915第一次:9651-1569 = 8082第二次:8820-288 = 8532第三次:8532 -2358 = 6174经过3次最大减少和最少动作后,请输入一个不同的四位数数字:9073输入的四位数是:9073第一次:9730-379 = 9351二次:9531-1359 = 8172三次:8721-1278 = 7443第四次:7443-3447 = 3996 h时间:9963-3699 = 6264第六时间:6642-2466 = 4176第七时间:7641-1467 = 6174通过了7次请输入不同的四位数,以表示最大减少量和最小减少量:5287输入的四位数是: 5287第一次:8752-2578 = 6174在进行了1次最大程度的减少和最少的操作后,我们将使用C语言代码。

为了验证,该代码的实现如下。

代码实现#include int convert(int number [],intans); int * sort(int number [],int len); int main(void){int number [4] = {0}; int * p = NULL; Int n = 0; int ans = 0; int count = 0; printf(“请输入不同的四位数:”); scanf(“%d”,& n); printf(“输入四位数字,该数字是:%d ",n); ans = n; while(ans!= 6174)ans = convert(number,ans); printf(“%d时间:%d " count + 1,ans); ++ count;}} Printf(“%d之后的最大减少和最小操作 " count); return 0;} int * sort(int number [],int len)//从大到小排序{int a = 0; for(int i = 0; i for(int j = i + 1; i {if(数字[i] {a =数字[i];数字[i] =数字[j];数字[j] = a;} }}返回数字;} int转换(int number [],intans)//每次转换获得的数字{int * p = NULL; intm = 0; number [0] = ans / 1000; //将此数字放入数组number [1] = ans%1000/100; Number [2] = ans%100/10; number [3] = ans%10; p = sort(number,4); m =(* p * 1000 + *(p + 1)* 100 + *(p +2)* 10 + *(p + 3))-(*(p + 3)* 1000 + *(p + 2)* 100 + *(p + 1 )* 10 + * p); //最大数量减去最小数量返回m;}操作结果:推荐阅读:如何在高可靠性领域中选择处理器系统和ADC / DAC?FPGA在医疗设备中起什么作用?最强大的eASIC!英特尔负担得起大量的xPU最终付款?21ic专有的“耕种收藏” |电子必看的公共帐户|电子“设计技巧”添加管理员微信您和工程师有什么区别?加入技术交流小组并与fa专家会面ce面对面。

免责声明:本文的内容是在21ic授权后发布的。

版权属于原始作者。

该平台仅提供信息存储服务。

本文仅代表作者的个人观点,并不代表该平台的立场。

如有任何疑问,请与我们联系,谢谢!