PAT--1069. The Black Hole of Numbers
来源:互联网 发布:windows平板镜像下载 编辑:程序博客网 时间:2024/05/23 16:32
For any 4-digit integer except the ones with all the digits being the same, if we sort the digits in non-increasing order first, and then in non-decreasing order, a new number can be obtained by taking the second number from the first one. Repeat in this manner we will soon end up at the number 6174 – the “black hole” of 4-digit numbers. This number is named Kaprekar Constant.
For example, start from 6767, we’ll get:
7766 - 6677 = 1089
9810 - 0189 = 9621
9621 - 1269 = 8352
8532 - 2358 = 6174
7641 - 1467 = 6174
… …
Given any 4-digit number, you are supposed to illustrate the way it gets into the black hole.
Input Specification:
Each input file contains one test case which gives a positive integer N in the range (0, 10000).
Output Specification:
If all the 4 digits of N are the same, print in one line the equation “N - N = 0000”. Else print each step of calculation in a line until 6174 comes out as the difference. All the numbers must be printed as 4-digit numbers.
Sample Input 1:
6767
Sample Output 1:
7766 - 6677 = 1089
9810 - 0189 = 9621
9621 - 1269 = 8352
8532 - 2358 = 6174
Sample Input 2:
2222
Sample Output 2:
2222 - 2222 = 0000
题解
注意n是可以小于1000的。。
#include <bits/stdc++.h>using namespace std;int n;int convert(int n, int mode){ int num[4] = {0}, k = 0; while(n){ num[k++] = n % 10; n /= 10; } if(mode) sort(num, num + 4, [](int a, int b){ return a > b; }); else sort(num, num + 4); int ret = 0, t = 1; for(int i = 3; i >= 0; --i) ret += num[i] * t, t *= 10; return ret;}int main(){ cin >> n; int a = convert(n, 1), b = convert(n, 0); int c = a - b; while(c && c != 6174){ printf("%04d - %04d = %04d\n", a, b, c); a = convert(c, 1), b = convert(c, 0); c = a - b; } printf("%04d - %04d = %04d\n", a, b, c); return 0;}
- PAT 1069. The Black Hole of Numbers
- PAT 1069. The Black Hole of Numbers
- pat 1069. The Black Hole of Numbers
- PAT--1069. The Black Hole of Numbers
- PAT-The Black Hole of Numbers (20)
- 【PAT】1069. The Black Hole of Numbers (20)
- 浙大PAT 1069题 1069. The Black Hole of Numbers
- PAT (Advanced) 1069. The Black Hole of Numbers (20)
- PAT 1069. The Black Hole of Numbers (stringstream)
- PAT A 1069. The Black Hole of Numbers (20)
- PAT 1069. The Black Hole of Numbers (20)
- pat 1069. The Black Hole of Numbers (20)
- PAT 1069. The Black Hole of Numbers (20)
- PAT 1069. The Black Hole of Numbers (20)
- PAT-A 1069. The Black Hole of Numbers
- PAT(甲级)1069. The Black Hole of Numbers (20)
- PAT甲级练习1069. The Black Hole of Numbers (20)
- PAT-A 1069. The Black Hole of Numbers (20)
- 判断是否为回文字符
- python numpy模块/库
- linux权限-bash: ./startup.sh: Permission denied
- 关于集合的有意义的代码 —— (一)
- 【京东2016研发工程师编程题】分苹果
- PAT--1069. The Black Hole of Numbers
- Eclipse启动时使用低版本JDK的问题
- 个人模拟面试之基础知识
- 将动画效果用于网页制作
- CS R46 C(思维套路),D(好题,数据结构维护) E(???)
- 代码优化,常见总结
- 5. Longest Palindromic Substring
- on()的多事件绑定
- HDU 3472 HS BDC 混合图欧拉路径 最大流