给定任一个各位数字不完全相同的 4 位正整数,如果我们先把 4 个数字按非递增排序,再按非递减排序,然后用第 1 个数字减第 2 个数字,将得到一个新的数字。一直重复这样做,我们很快会停在有“数字黑洞”之称的 6174,这个神奇的数字也叫 Kaprekar 常数。

例如,我们从6767开始,将得到

7766 - 6677 = 1089
9810 - 0189 = 9621
9621 - 1269 = 8352
8532 - 2358 = 6174
7641 - 1467 = 6174
... ...

现给定任意 4 位正整数,请编写程序演示到达黑洞的过程。

输入格式:

输入给出一个 (0,10​4​​) 区间内的正整数 N。

输出格式:

如果 N 的 4 位数字全相等,则在一行内输出 N - N = 0000;否则将计算的每一步在一行内输出,直到 6174 作为差出现,输出格式见样例。注意每个数字按 4 位数格式输出。

输入样例 1:

6767

输出样例 1:

7766 - 6677 = 1089
9810 - 0189 = 9621
9621 - 1269 = 8352
8532 - 2358 = 6174

输入样例 2:

2222

输出样例 2:

2222 - 2222 = 0000

解题代码:

#include<stdio.h>
int main(){void bubblesort(int n[]);int n;scanf("%d",&n);int num[4],min,max;//记录最大值最小值,需要相减 do{num[0]=n/1000;num[1]=n/100%10;num[2]=n/10%10;num[3]=n%10;if(num[0]==num[1]&&num[1]==num[2]&&num[2]==num[3]){printf("%d - %d = 0000",n,n);break;}bubblesort(num);min=num[0]*1000+num[1]*100+num[2]*10+num[3];max=num[3]*1000+num[2]*100+num[1]*10+num[0];n=max-min; //将结果重置 num[0]=n/1000;num[1]=n/100%10;num[2]=n/10%10;num[3]=n%10;printf("%04d - %04d = %d%d%d%d\n",max,min,num[0],num[1],num[2],num[3]);}while(n!=6174);
}
void bubblesort(int n[]){//从小到大排序 int i,j;int t;for(i=0;i<4-1;i++){for(j=0;j<4-i-1;j++){if(n[j+1]<n[j]){t=n[j];n[j]=n[j+1];n[j+1]=t;}}}
}

PAT乙级(1019 数字黑洞)相关推荐

  1. pat 乙级 1019 数字黑洞(C++)

    题目 给定任一个各位数字不完全相同的 4 位正整数,如果我们先把 4 个数字按非递增排序,再按非递减排序,然后用第 1 个数字减第 2 个数字,将得到一个新的数字.一直重复这样做,我们很快会停在有&q ...

  2. [PAT乙级]1019 数字黑洞

    给定任一个各位数字不完全相同的 4 位正整数,如果我们先把 4 个数字按非递增排序,再按非递减排序,然后用第 1 个数字减第 2 个数字,将得到一个新的数字.一直重复这样做,我们很快会停在有" ...

  3. PAT 乙级1019 数字黑洞

    给定任一个各位数字不完全相同的 4 位正整数 ,如果我们先把 4 个数字按非递增排序,再按非递减排序,然后用第 1 个数字减第 2 个数字,将得到一个新的数字.一直重复这样做,我们很快会停在有&quo ...

  4. PAT 乙级 1019. 数字黑洞 (20) Java版

    给定任一个各位数字不完全相同的4位正整数,如果我们先把4个数字按非递增排序,再按非递减排序,然后用第1个数字减第2个数字,将得到一个新的数字.一直重复这样做,我们很快会停在有"数字黑洞&qu ...

  5. PAT乙级 1019 数字黑洞 (20 分)

    题目内容 给定任一个各位数字不完全相同的 4 位正整数,如果我们先把 4 个数字按非递增排序,再按非递减排序,然后用第 1 个数字减第 2 个数字,将得到一个新的数字.一直重复这样做,我们很快会停在有 ...

  6. PAT乙级 1019 数字黑洞

    一.题目描述 给定任一个各位数字不完全相同的 4 位正整数,如果我们先把 4 个数字按非递增排序,再按非递减排序,然后用第 1 个数字减第 2 个数字,将得到一个新的数字.一直重复这样做,我们很快会停 ...

  7. C++学习之路 | PTA乙级—— 1019 数字黑洞 (20分)(精简)

    1019 数字黑洞 (20分) 给定任一个各位数字不完全相同的 4 位正整数,如果我们先把 4 个数字按非递增排序,再按非递减排序,然后用第 1 个数字减第 2 个数字,将得到一个新的数字.一直重复这 ...

  8. PAT:1019. 数字黑洞 (20) AC(同甲级1069)

    #include<stdio.h> #include<algorithm> using namespace std; const int AIM=6174; int n; in ...

  9. PAT乙级-B1019数字黑洞

    思路: 1.利用string录入数据,sort()即可完成从小到大排序:reverse()即可从大到小. 2.stoi()转化为整型. ps:要注意给定的数是(0,10000)即可能只给1~4位的数, ...

最新文章

  1. 中国黑客自揭黑色产业链条:做病毒一定要低调
  2. 浅谈WeakHashMap
  3. RabbitMQ消息队列(十三)-VirtualHost与权限管理
  4. 【Linux】crontab命令详解
  5. [深度学习] 分布式Tensorflow 2.0 介绍(二)
  6. 系统运维:收集6款经典的服务器监控工具
  7. ajax.request提交,ajax request 请求
  8. 面试官系统精讲Java源码及大厂真题 - 46 ServerSocket 源码及面试题
  9. jmeter判断值是否相等_jmeter beanshell判断响应的json值是否正确;
  10. mysql数据还原时报错_还原mysql数据库时报错
  11. mpi tcp连接报错_PHP Swoole长连接常见问题总结
  12. SQL_Server_2008完全学习之第五章操作架构、索引和视图
  13. 苹果cmsv10仿美剧吧自适应好看的免费高端简约模板
  14. MICIN、LINEIN、LINEOUT、HPOUT、麦克风、耳机、扬声器一次说明白
  15. opencv2 Mat类copyTo()函数的内存泄露问题
  16. oracle dul for windows 一键打开,oracle 数据恢复
  17. 通过internet连接到股票信息服务器,一种股票机的制作方法
  18. vue axios请求成功进入catch原因
  19. K7的PLL使用问题
  20. Low-Light Image Enhancement with Normalizing Flow

热门文章

  1. YOLOV3目标检测模型训练实例
  2. python2安装包_解决win10下python2和python3共存问题
  3. 最佳适配算法和最差适配算法_影响开放社区的最佳(和最差)方法
  4. 红帽补丁安装的方法_为什么红帽采取“上游优先”的方法
  5. ssm架构 开源项目_如何为您的开源项目选择正确的品牌架构
  6. 设计模式-行为型模式-命令模式
  7. CSS3 文本阴影 text-shadow属性
  8. 21 个编程的热门/冷门趋势
  9. linux 分段路由怎么添加,一种IPv6实现分段路由的方法及装置与流程
  10. php 7.2.5_CentOS7下PHP5.5.38升级PHP7.2.2