PAT A1069 The Black Hole of Numbers

news/2024/11/8 12:15:10/

1069 The Black Hole of Numbers

分数 20

作者 CHEN, Yue

单位 浙江大学

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,104).

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

 

#include <iostream>
#include <algorithm>
#include <string>using namespace std;int Stoi(string s)
{s = s + "000"; //防止s不足四位s = s.substr(0, 4);sort(s.begin(), s.end()); string a = s;reverse(a.begin(), a.end()); //a递减排序string b = s; //b、递增排序int n = stoi(a), m = stoi(b);printf("%04d - %04d = %04d\n", n, m, n-m);return n - m; //返回 n-m
}int main()
{string s;cin >> s;bool same = true;if(s.size() < 4)    same = false;for(int i=1; i<s.size(); ++i)if(s[i] != s[0])same = false;if(same) printf("%s - %s = %04d\n", s.c_str(), s.c_str(), 0);else{while(1){int n = Stoi(s);s = to_string(n);if(n == 6174)break;}}
}


http://www.ppmy.cn/news/93358.html

相关文章

MySQL索引详解(IT枫斗者)

MySQL索引详解 什么是索引 官方介绍索引是帮助MySQL高效获取数据的数据结构。简单来讲&#xff0c;数据库索引就像是书前面的目录&#xff0c;能加快数据库的查询速度。事实上&#xff0c;索引是一种数据结构&#xff0c;用于帮助我们在大量数据中快速定位到我们想要查找的数…

Linux中设置动态库的路径

Linux中设置动态库的路径 例如&#xff1a;在Ubantu对项目进行编译的时候出现&#xff1a; error while loading shared libraries: libmpc.so.3: cannot open shared object file: No such file or directory。 但是在使用 find 去对 libmpc.so.3 库进行查找&#xff0c;发现…

【利用AI让知识体系化】深入浅出Puppeteer

文章目录 1. Puppeteer简介1.1 什么是Puppeteer1.2 它能做什么Puppeteer能够完成以下一些主要的操作&#xff1a;1.3 为什么要使用Puppeteer 2. 安装和配置Puppeteer2.1 安装Puppeteer2.2 配置Puppeteer2.3 第一个Puppeteer程序 3. Puppeteer的基础功能3.1 打开和关闭浏览器3.2…

Pinctrl子系统_01_Pinctrl子系统介绍

本节介绍在Pinctrl子系统中&#xff0c;将会学习哪些内容。 Pinctrl作用 Pinctrl&#xff1a;Pin Controller&#xff0c;顾名思义&#xff0c;就是用来控制引脚的。 一个芯片有成百上千个引脚&#xff0c;这些引用要怎么配置&#xff0c;配置成什么功能&#xff0c;都是通P…

[快速入门前端17] CSS 选择器(6) 选择器总结

基本选择器 选择器说明语法通配符作用范围为所有标签&#xff0c;用于页面整体样式* { color: red }元素作用于同种标签&#xff0c;不能进行差异化样式设定p { color: red }类别作用于我们自行设定的类别&#xff0c;是使用频率最高的选择器.myClass { color: red }ID选取当前…

辅助驾驶功能开发-功能规范篇(24)-1-影子模式功能触发规范

1.影子模式 1.1. 影子模式介绍 影子模式的作用是在人类驾驶员参与的情况下,开启系统中除执行器外的所有模块,不停收集感知数据、道路交通者行为和预测结果,以及系统作出的决策和规划结果,并收集人类的驾驶行为,并将所有数据收集供开发者进行数据的回灌、对比、校验和训练…

15JS06——流程控制-循环

目标&#xff1a; 1、循环 2、for循环 3、双重for循环 4、while循环 5、do while循环 6、continue break 7、命名规范以及语法格式 一、循环 1、循环的目的 可以重复执行某些代码 2、JS中的循环 for循环 while循环 do…while循环 二、for循环 在程序中&#xff0c;一…

基于深度强化学习的目标驱动型视觉导航泛化模型

深度强化学习在目标驱动型视觉导航的泛化 参考论文《Towards Generalization in Target-Driven Visual Navigation by Using Deep Reinforcement Learning》 文章目录 深度强化学习在目标驱动型视觉导航的泛化1. 目标驱动型视觉导航问题2. 创新点和解决的问题2.1 创新点2.2 解…