给定任一个各位数字不完全相同的 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

Think
一定要注意整数的输出格式,例如 0159 前面的‘0’不能丢。

code

import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.util.Arrays;
import java.util.Scanner;public class Main {static PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));public static void main(String[] args) {Scanner in = new Scanner(System.in);int num = in.nextInt();yc(num);}private static void yc(int num) {int[] g = new int[4];g[0] = num % 10;g[1] = (num % 100) / 10;g[2] = (num % 1000) / 100;g[3] = num / 1000;if(g[0] == g[1] && g[1] == g[2] && g[2] == g[3]) {out.printf("%d - %d = 0000" , num , num);out.flush();} else {Arrays.sort(g);int[] reg = new int[4];int s1 = 0 , s2 = 0;for (int i = 0; i < 4; i++) {reg[i] = g[3 - i];s1 = s1 * 10 + g[3-i];s2 = s2 * 10 + g[i];}out.printf("%04d - %04d = %04d\n", s1,s2,s1-s2);out.flush();if(s1 - s2 == 6174 || s1 - s2 == 0) {return;}yc(s1-s2);}        }
}

1019 数字黑洞 (20 分)java相关推荐

  1. C++学习之路 | PTA乙级—— 1019 数字黑洞 (20分)(精简)

    1019 数字黑洞 (20分) 给定任一个各位数字不完全相同的 4 位正整数,如果我们先把 4 个数字按非递增排序,再按非递减排序,然后用第 1 个数字减第 2 个数字,将得到一个新的数字.一直重复这 ...

  2. 1019 数字黑洞 (20 分)(c语言)

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

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

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

  4. PTA | 1019 数字黑洞 (20分)

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

  5. PAT乙级 1019 数字黑洞 (20 分)

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

  6. 1019 数字黑洞 (20 分)

    原题链接 题面 思路 就是以字符串的形式读入,通过sort排序来实现升序排和降序排,通过string+ insert 的方式补全占位的 0. 坑点 就是一个数字不足四位时,必须要先在前面用 0 占位, ...

  7. 【PAT乙级】1019 数字黑洞 (20 分)

    https://pintia.cn/problem-sets/994805260223102976/problems/994805302786899968 注意补前导零. 例: 输入 9 应为0009 ...

  8. 1019 数字黑洞 (20分)

    输入样例 1: 6767 输出样例 1: 7766 - 6677 = 1089 9810 - 0189 = 9621 9621 - 1269 = 8352 8532 - 2358 = 6174 输入样 ...

  9. 1019 数字黑洞 (20)

    给定任一个各位数字不完全相同的4位正整数,如果我们先把4个数字按非递增排序,再按非递减排序,然后用第1个数字减第2个数字,将得到一个新的数字.一直重复这样做,我们很快会停在有"数字黑洞&qu ...

  10. PAT 乙级 1019. 数字黑洞 (20) Java版

    给定任一个各位数字不完全相同的4位正整数,如果我们先把4个数字按非递增排序,再按非递减排序,然后用第1个数字减第2个数字,将得到一个新的数字.一直重复这样做,我们很快会停在有"数字黑洞&qu ...

最新文章

  1. 微信如何实现自动跳转到用其他浏览器打开指定页面下载APP
  2. Linux系统的启动引导过程
  3. HTML+CSS+JS实现 ❤️仿切水果小游戏❤️
  4. mysql query cache 关闭_为什么要关闭MySQL query cache-Fun言
  5. directx修复工具v3.2增强版_微PE v2.0维护盘增强版万能启动盘20200726
  6. python 算法库_一个易用又功能强大的 Python遗传算法库
  7. 围绕LEADS理念以开发者为中心,华为HDG伴你梦飞扬!(转载)
  8. 蓝绿部署、滚动部署、灰度发布、金丝雀发布-概念介绍---应用部署001
  9. 我为什么辞去 Netflix 价值 45 万美元的开发工作
  10. Recycleview notifyDataSetChanged()方法调用出现IllegalStateException 问题的解决
  11. html语言制作静态网页,html+css制作的漂亮静态网页
  12. vue调用手机浏览器打开pdf_在微信中调用外部浏览器实现文件下载之解决
  13. CUDA的旋转R ROI Align的OPENCL实现1(原理理解)
  14. 今天你的人生做减法了吗?
  15. 工商管理专业知识与实务(初级)【10】
  16. Android 音视频深入 十八 FFmpeg播放视频,有声音(附源码下载)
  17. jy-12-SPRINGMYBATIS02——云笔记01-刘苍松
  18. sql joins图示
  19. 分析IBinder体系中getService的流程
  20. 【数组】深析 “数组名称”

热门文章

  1. 使用HttpWebRequest请求API接口以及其他网站资源
  2. 并发编程 - 协程 - 1.协程概念/2.greenlet模块/3.gevent模块/4.gevent实现并发的套接字通信...
  3. Lua string库整理
  4. 西安电子科技大学泄漏信息
  5. DuiLib学习笔记5——标题栏不能正常隐藏问题
  6. 第五章、窗口及对话框
  7. Win64 驱动内核编程-6.内核里操作注册表
  8. C语言经典例24-分数累加和
  9. 【C 语言】内存四区原理 ( 栈内存与堆内存对比示例 | 函数返回的堆内存指针 | 函数返回的栈内存指针 )
  10. 【Windows 逆向】CE 地址遍历工具 ( CE 结构剖析工具 | 尝试进行瞬移操作 | 尝试查找飞天漏洞 )