题目链接:1019 数字黑洞 (20 point(s))
分析
  • 输入正整数n后,将n转成int型数组nArr[4]
  • Arrays.sort(int[] a)方法将数组nArr非递减排序
  • 很显然,非递减排序得到的是最值,非递增排序得到的是最
  • 不需要再用排序方法将nArr进行非递增排序,直接逆序“组合”即可。具体见代码
  • 当相减的差result6174或者0时,结束do - while循环
/**
* Score 20
* Run Time 118ms
* @author wowpH
* @version 1.2
*/ import java.util.Arrays;
import java.util.Scanner; public class Main {
// 非递减,最小值
// 非递增,最大值
// 最大值最小值相减的结果
private int minN, maxN, result;
private int[] nArr;// 数组类型的n public Main() {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();// 输入正整数n
sc.close(); nArr = new int[4]; // 4位 result = n;
do {
step();
} while (6174 != result && 0 != result);// 结束条件
} private void step() {
// 转成数组类型
for (int i = 3; i >= 0; i--) {
nArr[i] = result % 10;
result /= 10;
} Arrays.sort(nArr); // 非递减排序 minN = maxN = 0; for (int i = 0; i < 4; i++) {
minN = minN * 10 + nArr[i]; // 顺序转成最小值
}
for (int i = 3; i >= 0; i--) {
maxN = maxN * 10 + nArr[i]; // 逆序转成最大值
} result = maxN - minN; // 结果
outputStep(); // 输出当前步骤的减法算式
} // 输出每一步
private void outputStep() {
if (0 == result) {
System.out.println(maxN + " - " + minN + " = 0000");
} else {
System.out.printf("%04d - ", maxN);
System.out.printf("%04d = ", minN);
System.out.printf("%04d\n", result);
}
} public static void main(String[] args) {
new Main();
}
}

版权声明:

  1. 转载请于首页注明链接形式的PAT(B) 1019 数字黑洞(Java)——wowpH
  2. 代码原创,公开引用不能删除首行注释(作者,版本号,时间等信息);
  3. 如果有疑问欢迎评论留言,尽量解答。

PAT(B) 1019 数字黑洞(Java)的更多相关文章

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

    1019. 数字黑洞 (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 给定任一个各位数字不完全相同的4位 ...

  2. PAT 乙级 1019 数字黑洞 (20) C++版

    1019. 数字黑洞 (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 给定任一个各位数字不完全相同的4位 ...

  3. 【PAT】1019 数字黑洞 (20)(20 分)

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

  4. PAT 乙级 1019.数字黑洞 C++/Java

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

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

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

  6. 牛客网 PAT 算法历年真题 1009 : 1019. 数字黑洞 (20)

    1019. 数字黑洞 (20) 时间限制 1000 ms 内存限制 32768 KB 代码长度限制 100 KB 判断程序 Standard (来自 小小) 题目描述 给定任一个各位数字不完全相同的4 ...

  7. PAT-乙级-1019. 数字黑洞 (20)

    1019. 数字黑洞 (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 给定任一个各位数字不完全相同的4位 ...

  8. P 1019 数字黑洞

    转跳点:

  9. PAT——1019. 数字黑洞

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

随机推荐

  1. centos7 安装 mysql5.6(MySQL-5.6.44-1.el7.x86_64.rpm-bundle.tar)

    1.卸载MariaDB rpm -qa | grep -i mariadb rpm -e --nodeps mariadb-libs--.el7.x86_64 2.卸载已有Mysql 卸载旧版本mys ...

  2. ORACLE批量导入图片到BLOB字段

    要插入图片的表不是固定的,而且是批量插入很多张,还要考虑到因为图片的文件名错误,修改后要再次插入,此时应避免已经插入的重复执行操作, 浪费时间. 所以就选择先用一张临时表来暂时保存从文件系统读取的照片 ...

  3. ansible 交互提示、tags和block

    1.交互提示:使用关键字:vars_prompt 例:使用ansible的交互式功能创建用户和给定一个密码. --- - hosts: test50 remote_user: root vars_pr ...

  4. 2018-2019-2 20165222《网络对抗技术》Exp9 Web安全基础

    1.实践过程记录 1.字符串型注入. 2.整数型注入 3.注入语句查看其他内容 4.xss是一种漏洞,这种漏洞允许用户输入脚本并且浏览器提交的时候不加编码.这种东西是最为流行并且有害的web应用的问题 ...

  5. Alpha项目冲刺! Day3-产出

    各个成员今日完成的任务 林恩:任务分工,博客撰写,完善设置等模块 杨长元:安卓本地数据库基本建立 李震:完成注册页面 胡彤:完善服务端 寇永明:画图,学习 王浩:画图,学习 李杰:画图,学习 各个成员 ...

  6. Navicat Premium 12安装与激活(亲测已成功激活)

    说明:博主所提供的激活文件理论支持Navicat Premium 12.0.16 - 12.0.24简体中文64位,但已测试的版本为Navicat Premium 12.0.22.12.0.23和12 ...

  7. redis之为什么redis是单线程?

    官方FAQ表示,因为Redis是基于内存的操作,CPU不是Redis的瓶颈,Redis的瓶颈最有可能是机器内存的大小或者网络带宽.既然单线程容易实现,而且CPU不会成为瓶颈,那就顺理成章地采用单线程的 ...

  8. How does Request.IsAuthenticated work?

    How does Request.IsAuthenticated work? MSDN Code Sample Description: The following code example uses ...

  9. C#Winform ListView中没有Item双击事件的两种实现方法!

    第一种: //if (this.listView1.FocusedItem != null) //{ // if (this.listView1.SelectedItems != null) // { ...

  10. Chrome和火狐插件让数以百万计用户隐私数据泄露

      https://tech.163.com/19/0721/12/EKK1PRAU00097U7R.html   网易科技讯7月21日消息,据国外媒体报道,流行浏览器诸如广告拦截等扩展功能,已经遭利 ...