注意两点:

1. 不足4位要补足,不仅仅是一开始要考虑,每次得到一个差值,都要考虑

2. 到0也会停下,不仅仅是一开始可能发生,也可能是过程中的某一个差值

另:

vector<int> 是可以作为函数的参数的。

AC代码

#include<cstdio>
#include<iostream>
#include<cmath>
#include<cstring>
#include<algorithm>
#include<bits/stdc++.h>
#include<stdlib.h>
#include<time.h>
#include<vector>
#include<set>
#include<string>
#include<queue>
#include<map>using namespace std;
typedef long long LL;const int maxn = 50007;
const int MOD = 1000000007;
const int INF = 1000000000;//INF:下确界
const LL SUP = (1LL<<63)-1;//SUP:上确界
const double eps = 1e-5;int getNum(vector<int> vi){int ans = 0;for(int i=vi.size()-1;i>=0;i--){ans = ans*10+vi[i];}return ans;
}int main(){string s;vector<int> vi; cin>>s;while(s.length()!=4){//不足4位补零 s+="0";  }for(int i=0;i<s.length();i++){vi.push_back(s[i]-'0');}sort(vi.begin(),vi.end());int big = getNum(vi);reverse(vi.begin(),vi.end());int small = getNum(vi);int sub = big - small;while(sub!=6174&&sub!=0){printf("%04d - %04d = %04d\n",big,small,sub);vi.clear();while(sub){vi.push_back(sub%10);sub /= 10;}while(vi.size()!=4){//不足4位补零vi.push_back(0);} sort(vi.begin(),vi.end());  big = getNum(vi);reverse(vi.begin(),vi.end());small = getNum(vi);sub = big - small;}printf("%04d - %04d = %04d\n",big,small,sub);return 0;
}

1069 The Black Hole of Numbers相关推荐

  1. PAT甲级1069 The Black Hole of Numbers:[C++题解]模拟、6174

    文章目录 题目分析 题目来源 题目分析 来源:acwing 分析: 注意特判 6174这个数:if(n == 6174) printf("7641 - 1467 = 6174\n" ...

  2. 1069. The Black Hole of Numbers (20)

    题目如下: For any 4-digit integer except the ones with all the digits being the same, if we sort the dig ...

  3. [PAT-A 1069]The Black Hole of Numbers

    题目大意: 给定任一个各位数字不完全相同的 4 位正整数,如果我们先把 4 个数字按非递增排序,再按非递减排序,然后用第 1 个数字减第 2 个数字,将得到一个新的数字. 已知这样做,答案就会停在61 ...

  4. 【PAT甲级 前导0,排序】1069 The Black Hole of Numbers (20 分) C++ 全部AC

    题目 一直循环相减即可,直到结果为6174或者四个数字相同就结束循环 题解 C++ #include<iostream> #include<stdio.h> #include& ...

  5. 15行代码AC——1019 数字黑洞 (20分) 甲级1069. The Black Hole of Numbers (20)(解题报告)

    立志用更少的代码做更高效的表达 PAT甲级最优题解-->传送门 Pat乙级最优化代码+题解+分析汇总-->传送门 给定任一个各位数字不完全相同的 4 位正整数,如果我们先把 4 个数字按非 ...

  6. PTA甲级考试真题练习69——1069 The Black Hole of Numbers

    题目 思路 水题,利用sprintf和sscanf进行字符串和整数的格式转换 代码 #include <iostream> #include<algorithm> using ...

  7. pat1069. The Black Hole of Numbers (20)

    1069. The Black Hole of Numbers (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, ...

  8. PAT1069. The Black Hole of Numbers

    //这是到水题,之前因为四位数的原因一直不能A,看了别人的程序,才明白,不够四位的时候没考虑到,坑啊.....脸打肿 #include<cstdio> #include<algori ...

  9. pat-1069 The Black Hole of Numbers (20分)

    感觉我的解答比很多题解都好,嘻嘻就是模板的使用 但是需要去做注意一个测试点,如果输出的数字是一个小于1000的数,就是数位小于4,那么就需要自己去使用string的匿名函数去补上前导0 代码如下: # ...

最新文章

  1. cf-Sasha and Array
  2. 【转】无法将notepad++添加到打开方式列表中的解决办法
  3. linux怎么创建vi脚本,Vim 创建Python脚本时候自动补全解释器和编码方法
  4. VTK:PolyData之CellsInsideObject
  5. weblogic jms消息 删除_消息队列与消息中间件概述:消息中间件核心概念与技术选型...
  6. php获取laydate,laydate日历控件使用方法实例分享
  7. 零基础怎么玩转可视化大屏?这个工具只需5步!
  8. 直接学python3_新手应该学python2还是python3?
  9. 计算机网络误区——VLAN中Access和Trunk原理详解
  10. 激光计算机的基本原理和特点,3D激光传感器的原理及特点
  11. YUY与RGB格式区别
  12. 自考计算机00051笔记,自考00051 管理系统中计算机应用自考资料笔记自考小抄.doc...
  13. OVER(PARTITION BY)使用方法
  14. Linux代码编译(模式切换、gdb、编译器之间的对比、彩色进度条、rpm与yum区别)
  15. 游戏对战匹配逻辑小结
  16. 关于数据库锁的自问自答
  17. 伊利诺伊大学厄本那 香槟分校计算机科学,伊利诺伊大学厄本那-香槟分校计算机科学面试经验汇总...
  18. python药店销售数据分析_Python:某医院药品销售数据分析
  19. 高一计算机课期中考试总结反思,2017高一数学期中考试反思总结
  20. steam 平台 饥荒 联机版 Linux云服务器 搭建教程

热门文章

  1. 微信网页开发 jssdk前后端代码,PHP实现完整代码,自定义分享
  2. js正则验证身份证号是否正确
  3. 【Ant Design Pro 一】 环境搭建,创建一个demo
  4. CentOS 安装Python3
  5. Windows Server 2012关闭Server Manager开机自启动
  6. 正确使用STL-MAP中Erase函数
  7. 改善C#程序的建议3:在C#中选择正确的集合进行编码
  8. eclipse编辑窗口不见了(打开左边的java、xml文件,中间不会显示代码)
  9. SQL Server 一些重要视图3
  10. MySQL Xtrabackup备份和恢复