6174C语言编程,C语言代码实现:6174数学黑洞(卡普雷卡尔常数)
1:6174数学黑洞现象
,即常数。
任选4个不完全相同的数字(,如1111就不行),让减(例如8753-3578),不断重复这个动作,最后一定会得到相同的结果:。
神奇的是:这个“最大减最小”的动作,最多!
2:现象复现
我们先来看看五组实验结果:
请输入一个互不相同的四位数:3758
输入的四位数是:3758
第1次:8753 - 3578 = 5175
第2次:7551 - 1557 = 5994
第3次:9954 - 4599 = 5355
第4次:5553 - 3555 = 1998
第5次:9981 - 1899 = 8082
第6次:8820 - 288 = 8532
第7次:8532 - 2358 = 6174
经过了7次最大减最小的动作
请输入一个互不相同的四位数:2517
输入的四位数是:2517
第1次:7521 - 1257 = 6264
第2次:6642 - 2466 = 4176
第3次:7641 - 1467 = 6174
经过了3次最大减最小的动作
请输入一个互不相同的四位数:6915
输入的四位数是:6915
第1次:9651 - 1569 = 8082
第2次:8820 - 288 = 8532
第3次:8532 - 2358 = 6174
经过了3次最大减最小的动作
请输入一个互不相同的四位数:9073
输入的四位数是:9073
第1次:9730 - 379 = 9351
第2次:9531 - 1359 = 8172
第3次:8721 - 1278 = 7443
第4次:7443 - 3447 = 3996
第5次:9963 - 3699 = 6264
第6次:6642 - 2466 = 4176
第7次:7641 - 1467 = 6174
经过了7次最大减最小的动作
请输入一个互不相同的四位数:5287
输入的四位数是:5287
第1次:8752 - 2578 = 6174
经过了1次最大减最小的动作
3:C语言代码的实现
接下来,我们用C语言代码进行验证,代码实现如下:
//代码实现
#include
int convert(int number[],int ans);
int *sort(int number[],int len);
int main(void)
{
int number[4] = {};
int *p = NULL;
int n = ;
int ans = ;
int count = ;
printf("请输入一个互不相同的四位数:");
scanf("%d",&n);
printf("输入的四位数是:%d\n",n);
ans = n;
while(ans!=6174)
{
ans = convert(number,ans);
printf("第%d次:%d\n",count+1,ans);
++count;
}
printf("经过了%d次最大减最小的动作\n",count);
return ;
}
int *sort(int number[],int len) //大到小的排序
{
int a =;
for(int i=; i
{
for(int j=i+1;j
{
if(number[i]
{
a = number[i];
number[i] = number[j];
number[j] = a;
}
}
}
return number;
}
int convert(int number[],int ans)//每次变换得到的数字
{
int *p = NULL;
int m=;
number[] = 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);//最大数字减去最小数字
return m;
}
运行结果:
6174C语言编程,C语言代码实现:6174数学黑洞(卡普雷卡尔常数)相关推荐
- matlab常数编程,Matlab编程,求解出卡普雷卡尔(Kaprekar)常数
用matlab编程,计算出卡普雷卡尔(Kaprekar)常数 取任意一个4位数(4个数字均为同一个数的除外),将该数的4个数字重新组合,形成可能的最大数和可能的最小数,再将两者之间的差求出来:对此差值 ...
- 11 12 13c语言编程,C语言编程
C语言编程 1.sscanf() sscanf()与scanf()类似,都是用于输入的,只是后者以键盘(stdin)为输入源,前者以固定字符串为输入源. 头文件:#include 格式:int ssc ...
- [Lua语言编程]Lua语言基础知识
文章目录 `Lua` `Lua`语言的起源 `Lua` 特性 `Lua下载` Linux 系统上安装 Mac OS X 系统上安装 Window 系统上安装 `Lua` `Lua`语言语法 `Lua` ...
- 0.618法C语言编程,c语言编程题--0.618法求最小值
c语言编程题--0.618法求最小值0 题目: 1.函数f(x)=x+10/x,初始量a=2,b=10,c=0.3 2.步骤:(1)取a1=a+0.382*(b-a),b1=b+0.618*(b-a) ...
- 100以内加减法C语言编程,C语言编程100题(其三)来啦!
原标题:C语言编程100题(其三)来啦! 无论是风里,还是在雨里,我都在这里守候着你- 大家好啊,我是小C,咱们又见面咯,前面的题目做的怎么样呢,今天又给大家送上新的题目了,快来学习吧! 计算200到 ...
- 在线模拟c语言编程,c语言模拟编程学习软件v2019
C/C ++程序设计学习与实验系统是一款可用于设计教学演示.学习与实验的C/C ++语言编程学习软件,是由从事教学的老师根据C/C ++的初学者及C程序多媒体演示研发.对于想要学习C语言的朋友是一个不 ...
- 6174C语言编程,C语言验证6174数学问题
有意思的数学问题 任意4位不完全一样的数字,能组合出的最大数字减去能组合出的最小数字,得到一个新的数字(3位数补0),重复以上操作,不超过7个循环,必然得到一个数:6174 这个问题是之前发布的文章, ...
- 数制转换c语言编程,C语言数据结构中数制转换实例代码
C语言数据结构中数制转换实例代码 数制转换是严蔚敏的数据结构那本书中的例子,但是那本书中的例子大都是用伪代码的形式写的,不是很容易理解和实现,对初学者造成了不小的困扰,在这里我们将其详尽的实现出来,以 ...
- 谁的饭量大 c语言编程,c语言第一章第一节 认识变量(示例代码)
声明:本人大一新生,闲着无聊..写写c语言教程..菜鸟一枚..大神勿喷!!! 接下来我们都用dev来进行编译..vc++太古老了,没提示功能,不好上手,并且老是出毛病..vs太大了,编个c不至于,运行 ...
最新文章
- cdt仿真程序,可模拟RTU使用CDT92协议和主站端通讯
- 分布式端口扫描利刃: 使用DNmap创建Nmap集群
- 【特征工程】特征分箱
- Vim-复制选中内容至系统剪贴板,光标移动到指定行的行首和行尾
- 屏的像素与传输速率_柔性半导体新突破:传输速度已足够驱动OLED像素
- 虚拟机vmware11装Mac ox 10.8 解决windows8.1下unlocker202 vmxsmc.exe已停止工作的问题
- Java 设计模式之工厂模式(二)
- JavaWeb无限级分销结构分析
- js 匿名函数_编写高质量箭头函数的5个最佳做法
- Fabric chaincode开发调试
- NUC1840 Graveyard Design【尺取法】
- jquery api的整体解读
- 75道逻辑思维题及答案--计算机面试大全
- 【MySQL】011-多表查询
- 学习笔记1——制作数据集
- 计算机软件水平辅导,计算机软件水平辅导:软件的社交能力
- aect17定义_AECT-05定义与94定义的区别?
- CurveLane-NAS: Unifying Lane-Sensitive Architecture Search and Adaptive Poin
- 1112_Vue+SpringBoot+Mybatis的简单员工管理项目
- Docker快速入门总结笔记