对于任何各位数字不完全相同的四位整数,我们将该数字的四个数位按非升序排列,得到一个数字,再按非降序排列,得到另一个数字,将两个数字相减就能得到一个新的数字。

不断重复这个过程,我们就能得到数字6174 ---- 这是四位数字的黑洞。

例如,给定数字 6767,过程如下:

7766 - 6677 = 1089
9810 - 0189 = 9621
9621 - 1269 = 8352
8532 - 2358 = 6174
7641 - 1467 = 6174
… …
给定任意一个四位数字,请你输出它进入黑洞的过程。

输入格式
包含一个正整数 NN。

注意,给定数字 NN 如果不足四位,则补充前导 00 至四位为止。

输出格式
如果 NN 的四位数字都相同,则输出一行 N - N = 0000。

否则,每行输出一个操作步骤,直到出现 61746174 作为差值产生为止。

所有数字都必须输出为四位数字。

数据范围
0<N<100000<N<10000
输入样例1:
6767
输出样例1:
7766 - 6677 = 1089
9810 - 0189 = 9621
9621 - 1269 = 8352
8532 - 2358 = 6174
输入样例2:
2222
输出样例2:
2222 - 2222 = 0000

#include <iostream>
#include <cstring>
#include <vector>
#include <algorithm>using namespace std;vector<int> get(int n)
{int nums[4];for (int i = 0; i < 4; i ++ ){nums[i] = n % 10;n /= 10;}sort(nums, nums + 4);int a = 0;for (int i = 0; i < 4; i ++ ) a = a * 10 + nums[i];reverse(nums, nums + 4);int b = 0;for (int i = 0; i < 4; i ++ ) b = b * 10 + nums[i];return {b, a};
}int main()
{int n;cin >> n;do{vector<int>  t = get(n);printf("%04d - %04d = %04d\n", t[0], t[1], t[0] - t[1]);n = t[0] - t[1];} while (n && n != 6174);return 0;
}

PAT甲级真题1069 数字黑洞(巧妙解法)相关推荐

  1. PAT甲级真题 1018 A+B in Hogwarts--python解法

    PAT甲级真题 1018 A+B in Hogwarts 提交:2638 通过:1559 通过率:59% If you are a fan of Harry Potter, you would kno ...

  2. PAT甲级真题目录(按题型整理)(转自柳神)

    转载自:https://www.liuchuo.net/archives/2502?tdsourcetag=s_pcqq_aiomsg 最短路径 1003. Emergency (25)-PAT甲级真 ...

  3. 【PAT甲级真题整理三】1061~1090

    目录 1061 Dating(20)字符串处理 1062 Talent and Virtue(25)排序 1063 Set Similarity(25)set的使用 1064 Complete Bin ...

  4. 【PAT甲级真题整理五】1121~1155

    终于考完了qaq把最后一堆也整理出来了 目录 1121 Damn Single(25)set.map的使用 1122 Hamiltonian Cycle(25)哈密顿回路 1123 Is It a C ...

  5. PAT甲级真题 1011 World Cup Betting (20分) C++实现

    题目 With the 2010 FIFA World Cup running, football fans the world over were becoming increasingly exc ...

  6. 1131. Subway Map (30)-PAT甲级真题 (DFS or 堆优化dij or SPFA)

    题意 给出地铁线路数n,分别给出每条线的站点数m,再依次列出站点id.然后询问k次从启点sv到终点ev的最短路径,如果最短路径相同,要求换乘最少的路径.最后按条件输出. 思路 1.用unordered ...

  7. 「PAT甲级真题解析」Advanced Level 1009 Product of Polynomials

    PAT (Advanced Level) Practice 1009 Product of Polynomials 如果对你有帮助,要点个赞让我知道喔~ 文章目录 问题分析 完整步骤描述 伪代码描述 ...

  8. 1120. Friend Numbers (20)-PAT甲级真题

    1120. Friend Numbers (20) Two integers are called "friend numbers" if they share the same ...

  9. L2-012. 关于堆的判断-PAT甲级真题(堆的建立,向上调整)

    L2-012. 关于堆的判断 将一系列给定数字顺序插入一个初始为空的小顶堆H[].随后判断一系列相关命题是否为真.命题分下列几种: "x is the root":x是根结点: & ...

最新文章

  1. 机械转嵌入式还是java,机械硕士转嵌入式后悔吗?
  2. QPainter 的状态保存与恢复
  3. android图片压缩上传系列-基础篇
  4. HTML控制表格边线显示。
  5. 利用Eclipse的TaskList功能进行任务管理
  6. python编程考试题目大全
  7. 如何使用win10自带的录屏工具录制视频
  8. 精英反向黄金正弦鲸鱼算法-附代码
  9. 2020最新手机百度云不限速教程,下载速度10M/S,比会员还快
  10. 非正式组织,比你预想的要重要的多
  11. Java编程精选题(1)
  12. TADF材料的机制原理;TADF的机理;热活化延迟荧光如何产生?
  13. C语言返回数组的两种方法
  14. 这4款网页书签管理工具,整理收藏夹更轻松
  15. 数值运算pythonmopn_数的解释|数的意思|汉典“数”字的基本解释
  16. 计算机重启恢复系统怎么操作,电脑问题不求人!教你如何使用恢复还原系统绝技...
  17. 芯片组的相关概念描述
  18. leetcode703. 数据流中的第K大元素(PriorityQueue 最小堆)
  19. 音频在线转文字的方法
  20. Windows电脑改DNS的方法

热门文章

  1. 一加和华为买哪个好?一加9pro用实力告诉你
  2. canvas基础1 - 画直线(通俗易懂)
  3. 【Vue】第四部分 列表(渲染、排序、过滤)
  4. 【推荐系统】推荐系统-基础算法 冷启动、及深度学习在冷启动上的应用
  5. 边缘检测算子之间的优劣
  6. fastreport 打印有 demo version字样_PC太空射击《永恒空间2》免费Demo版推出!支持简中...
  7. Mock-jmockeasymock 小凯总结
  8. Jmeter书中不会教你的(21)——快递时效查询实战2http header manager
  9. [转载]QQ好友无处藏身-揪出隐身好友的最简技巧
  10. 远程办公的管理者怎样做到让员工自管理,并且提升人效