【PAT】B1019 数字黑洞

2023-05-16

给定任一个各位数字不完全相同的 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 <cstdio>
#include <algorithm>
#include <sstream>
#include <iostream>
using namespace std;

bool cmp(char a, char b){
    return a > b;
}

int main()
{
    int n;
    string s;
    int x, y;
    scanf("%d", &n);
    while(1){
        stringstream ss;
        ss << n;
        s = ss.str();
        if(s.size() < 4){
            int len = 4 - s.size();
            while(len--){
                s = '0' + s;
            }
        }
        sort(s.begin(), s.end(), cmp);
        x = stoi(s);
        sort(s.begin(), s.end());
        y = stoi(s);
        n = x - y;
        printf("%04d - %04d = %04d\n", x, y, n);
        if(n == 0 || n == 6174) break;
    }
    return 0;
}

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【PAT】B1019 数字黑洞 的相关文章

  • PAT乙级题解1016——1016 部分A+B(Java)

    PAT乙级题解1016 1016 部分A 43 B xff08 Java xff09 一 xff1a 题目 二 xff1a 输入输出 输入样例 xff1a span class token number 3862767 span span
  • 【PAT】B1019 数字黑洞

    给定任一个各位数字不完全相同的 4 位正整数 xff0c 如果我们先把 4 个数字按非递增排序 xff0c 再按非递减排序 xff0c 然后用第 1 个数字减第 2 个数字 xff0c 将得到一个新的数字 一直重复这样做 xff0c 我们很
  • 肿瘤诊断(PAT)

    题目链接 https www patest cn contests gplt L3 004 一道很裸的bfs 一开始以为会超时 抱着试一试的心态交了一发竟然过了 include
  • PAT

    1045 快速排序 25分 著名的快速排序算法里有一个经典的划分过程 我们通常采用某种方法取一个元素作为主元 通过交换 把比主元小的元素放到它的左边 比主元大的元素放到它的右边 给定划分后的 N 个互不相同的正整数的排列 请问有多少个元素可
  • 【PAT】1033 旧键盘打字 (20 分)

    1033 旧键盘打字 20 分 旧键盘上坏了几个键 于是在敲一段文字的时候 对应的字符就不会出现 现在给出应该输入的一段文字 以及坏掉的那些键 打出的结果文字会是怎样 输入格式 输入在 2 行中分别给出坏掉的那些键 以及应该输入的文字 其中
  • L1-095 分寝室PTA

    学校新建了宿舍楼 共有 n 间寝室 等待分配的学生中 有女生 n0 位 男生 n1 位 所有待分配的学生都必须分到一间寝室 所有的寝室都要分出去 最后不能有寝室留空 现请你写程序完成寝室的自动分配 分配规则如下 男女生不能混住 不允许单人住
  • 交换机与路由器技术-35-端口多路复用PAT

    目录 一 端口多路复用 PAT 1 1 概述 1 2 端口映射 服务器映射 1 3 配置端口多路复用 1 3 1 方式一 使用单独的公网IP 第一步 定义内网和外网接口 第二步 定义内网地址范围 外网地址 1 使用ACL 允许某个范围的内网
  • PAT乙级1074. 宇宙无敌加法器(C语言)

    PAT乙级真题题解目录 可回顾 1048 数字加密 都涉及使数字位数一致 1 不同位数的PAT数之间如何方便相加 构造相同大小的字符数组 按位数存储对应的数字 2 相加时转为数字进行运算 3 结果为0 为特殊情况 单独写输出代码 inclu
  • 1014 Waiting in Line (30)

    题目描述 Suppose a bank has N windows open for service There is a yellow line in front of the windows which devides the wait
  • PAT题解——Basic Level——1094 谷歌的招聘

    题目链接 https pintia cn problem sets 994805260223102976 problems 1071785997033074688 题面 本题要求你编程解决一个更通用的问题 从任一给定的长度为 L 的数字中
  • 7-7 12-24小时制 (15 分) (C语言实现)

    题目 思路 直接跟着题目往下写 没有过多思考 后面答案部分正确 才重新写了12点那里的程序 11min 代码 include
  • Pat刷题真题乙级(4)

    标题 前言 Pat乙级1013 组个最小数 Pat乙级1014 科学计数法 Pat乙级1017 打印沙漏 Pat乙级1018 人口普查 Pat乙级1019 旧键盘 前言 这个周末花了两天才写了五道题 嘿嘿 康康吧 Pat乙级1013 组个最
  • PAT : PAT (Basic Level) Practice(中文)答案(1001 ~ 1095)(纯C编写)

    题目集地址 报名了12月的PAT B 先试试水 已完成 2018 10 22 2018 11 14 更新 2018 12 09 PAT乙级考试100分 考试代码已更新 冬天坐火车跑去考试冻懵了 来年对战PAT甲级考试 目录 目录 题目集地址
  • 【PAT甲级A1125】 Chain the Ropes (25分)(c++)

    1125 Chain the Ropes 25分 作者 CHEN Yue 单位 浙江大学 代码长度限制 16 KB 时间限制 200 ms 内存限制 64 MB Given some segments of rope you are sup
  • PAT乙级题解—— 1071 小赌怡情 (15分)

    常言道 小赌怡情 这是一个很简单的小游戏 首先由计算机给出第一个整数 然后玩家下注赌第二个整数将会比第一个数大还是小 玩家下注 t 个筹码后 计算机给出第二个数 若玩家猜对了 则系统奖励玩家 t 个筹码 否则扣除玩家 t 个筹码 注意 玩家
  • PAT-组个最小数

    题目描述 给定数字0 9各若干个 你可以以任意顺序排列这些数字 但必须全部使用 目标是使得最后得到的数尽可能小 注意0不能做首位 例如 给定两个0 两个1 三个5 一个8 我们得到的最小的数就是10015558 现给定数字 请编写程序输出能
  • 1063. 计算谱半径(20)

    在数学中 矩阵的 谱半径 是指其特征值的模集合的上确界 换言之 对于给定的n个复数空间的特征值 a1 b1i an bni 它们的模为实部与虚部的平方和的开方 而 谱半径 就是最大模 现在给定一些复数空间的特征值 请你计算并输出这些特征值的
  • 1007. 素数对猜想 (20)

    让我们定义 dn 为 dn pn 1 pn 其中 pi 是第i个素数 显然有 d1 1 且对于n gt 1有 dn 是偶数 素数对 猜想 认为 存在无穷多对相邻且差为2的素数 现给定任意正整数N lt 105 请计算不超过N的满足猜想的素数
  • 1055. 集体照 (25) PAT乙级真题

    1055 集体照 25 拍集体照时队形很重要 这里对给定的N个人K排的队形设计排队规则如下 每排人数为N K 向下取整 多出来的人全部站在最后一排 后排所有人的个子都不比前排任何人矮 每排中最高者站中间 中间位置为m 2 1 其中m为该排人
  • pat 乙级 1015. 德才论 (25) c++

    http 39 106 25 239 个人网站 欢迎访问 交流 1015 德才论 25 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN Li 宋代史学家司马光在 资

随机推荐

  • coursera C程序进阶 第二周 #6

    题目 xff1a 流感传染 有一批易感人群住在网格状的宿舍区内 xff0c 宿舍区为n n的矩阵 xff0c 每个格点为一个房间 xff0c 房间里可能住人 xff0c 也可能空着 在第一天 xff0c 有些房间里的人得了流感 xff0c
  • 大数据学习路线图(旧)

    一 入门准备 1 linux操作基础 1 Linux的介绍 xff0c Linux的安装 xff1a VMware Workstation虚拟软件安装过程 CentOS虚拟机安装过程 2 Linux的常用命令 xff1a 常用命令的介绍 常
  • Linux网络编程:状态机

    Linux网络编程 xff1a 状态机 状态机基本概念介绍状态机的特征状态机的要素注意 xff01 为什么在网络编程中需要状态机 xff1f 状态机基本概念介绍 首先我们简单的介绍一下状态机的基本概念 有限状态机是一种用来进行对象行为建模的
  • Ubuntu 20.04 安装 cuda9.0不成功如何解决

    cuda9 0需要低版本gcc才能兼容 xff0c 试了很多教程 xff0c 最终参考以下链接安装成功 xff0c 粗略记录一下 xff0c 免得下次又采坑 1 安装低版本gcc xff1a gcc 5 4 0 参考以下链接 xff1a 不
  • (八)linux中断实现

    目录 一 linux中断的实现二 中断号三 中断的标志四 中断源对应的中断服务程序五 中断服务程序与原子上下文六 等待队列七 附录 一 linux中断的实现 span class token macro property span clas
  • i3wm 屏幕配置踩坑

    i3wm 屏幕配置踩坑 前言踩坑 前言 自从18 19年开始正式使用linux作为我的开发系统就一直没有换回windows 从一开始的 ubuntu 到后来的manjaro 感觉越来越有意思可玩性很高 至于我我什么不换回windows 原因
  • 这个Python库太强了,竟然能把图片,视频无损清晰放大!

    这几天在逛GitHub的时候发现了一个非常牛逼的库 xff0c 竟然有逆天的功能 xff0c 一个用Python做的库 xff0c 利用机器学习算法把图片无损的放大很多倍 这个库叫video2x xff0c 目前收获1500颗星 xff0c
  • 字符串和枚举的互相转化

    字符串和枚举的互相转化 字符串转枚举枚举转字符串总结 字符串转枚举 提示 xff1a 关键代码Enum Parse 代码如下 xff08 示例 xff09 xff1a string str span class token operator
  • CentOS7 安装mysql(YUM源方式)

    CentOS7 安装mysql xff08 YUM源方式 xff09 1 下载mysql源安装包 wget http dev mysql com get mysql57 community release el7 8 noarch rpm
  • Linux(5)---Linux中nano命令

    nano是一个字符终端的文本编辑器 xff0c 有点像DOS下的editor程序 它比vi vim要简单得多 xff0c 比较适合Linux初学者使用 某些Linux发行版的默认编辑器就是nano nano命令可以打开指定文件进行编辑 xf
  • Centos7安装配置桌面环境xfce

    1 centos最小化安装之后由于没有桌面环境 xff0c gnome太大 xff0c 所以找一个小的桌面环境用于一些不方便命令行的操作 2 首先是连接到网络 xff08 不详细展开了 xff09 3 安装桌面环境 yum groupins
  • 利用RSA+AES 前后端对数据进行加密处理 -- 整体思路

    利用RSA 43 AES 前后端对数据进行加密处理 整体思路 前言RSA加密算法RSA简介RSA缺点 AES加密算法AES简介AES缺点 RSA 43 AES 整体流程 前言 目前项目中需要对接口中的一些参数进行加密处理 xff0c 考虑了
  • centos7安装FreeSwitch,以及设置Freeswitch开机自启

    一 下载指定版本的freeswitch cd usr local src git clone branch v1 10 7 https github com signalwire freeswitch git 也可以下载1 10 7的压缩包
  • [iOS] TableViewCell 自适应高度

    说明 TableViewCell 几乎是必用控件 xff0c 使用 TableViewCell 免不了计算其 cell 高度 xff0c 网上也有非常多关于 TableViewCell 高度自适应的文章 xff0c 自己也尝试总结了计算ce
  • Tmux 使用教程

    转载自Tmux 使用教程 作者 xff1a 阮一峰 URL xff1a http www ruanyifeng com blog 2019 10 tmux html Tmux 1 Tmux 是什么 xff1f 1 1 会话与进程1 2 Tm
  • MacOS 下 VScode 编译运行 C/C++ (ACM向)简单粗暴

    VSCode 的下载 安装 在 VSCode 官网 点击 Download for Mac 开始下载 xff0c 之后双击下载完成的文件等待一会就安装好了 必备插件安装 VSCode 启动后 xff0c 点击左侧最下的方块形按钮 xff08
  • 写在2019年ACM-ICPC亚洲区域赛宁夏站之后——一只菜鸡的ACM生涯

    写在2019年ACM ICPC亚洲区域赛宁夏站之后 一只菜鸡的ACM生涯 一晃时间就过去了 xff0c 接触ACM也将近一年半的时间 在这段时间里 xff0c 有过找不出来bug的难受体验 xff0c 也有过茅塞顿开的兴奋激动 xff1b
  • win10下安装Anaconda3后cmd中运行“conda”命令显示“‘conda’不是内部或外部命令,也不是可运行的程序”的解决方法

    找到安装目录 Anaconda3 xff0c 例如我的是 C Users zuoyu Anaconda3 xff1b 将 Anaconda3 Anaconda3 Scripts Anaconda3 Library bin 三个目录添加到系统
  • VS Code中使用Code Runner运行Python代码时中文乱码问题解决

    在配置文件 setting json 中加入如下代码即可 34 code runner executorMap 34 34 python 34 34 set PYTHONIOENCODING 61 utf8 amp amp python u
  • 【PAT】B1019 数字黑洞

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