• PAT(B) 1019 数字黑洞(Java)


    题目链接: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
    ", result);
    		}
    	}
    
    	public static void main(String[] args) {
    		new Main();
    	}
    }
    

    版权声明:

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

  • 相关阅读:
    爬取药智网中的方剂信息
    日报3.13
    数据库添加出错
    Bencode
    一些安全网络协议
    代码质量不重要
    Jordan Peterson
    随身记录的缺点
    Why is Go PANICking?
    go问
  • 原文地址:https://www.cnblogs.com/wowpH/p/11060777.html
Copyright © 2020-2023  润新知