• 某书2018笔试题之翻转数字


    一、题目

      输入一个整数,该整数有符号的32位的int型数字,翻转该数字,如果计算结果溢出,直接返回0.

    二、思路

           详见代码,注意判断结果溢出的情况。

    三、代码

    package redbook4;
    
    import java.math.BigInteger;
    import java.util.Scanner;
    
    /**
     * 输入一个整数,该整数有符号的32位的int型数字,翻转该数字,如果计算结果溢出,直接返回0.
     */
    
    public class Main {
        public static void main(String[] args) {
            Scanner in = new Scanner(System.in);
            while (in.hasNext()) {
                //输入
                int num = in.nextInt();
                //调用方法
                int result = revs(num);
                //输出结果
                System.out.println(result);
            }
            in.close();
        }
    
        public static int revs(int num) {
            //数字转换成字符串
            String strNum = String.valueOf(num);
            //String转换成BigInteger
            BigInteger bigMum = new BigInteger(strNum);
    
    
            BigInteger bigResult = new BigInteger("0");
    
            while (true) {
                //取出最低位上的数字
                BigInteger val = bigMum.remainder(new BigInteger("10"));
    
                //反转并存储
                bigResult = bigResult.multiply(new BigInteger("10")).add(val);
    
                //判断结果是否溢出,如果溢出,直接返回0
                String str1 = "-2147483648";
                String str2 = "2147483647";
                BigInteger bi1 = new BigInteger(str1);
                BigInteger bi2 = new BigInteger(str2);
                if (bigResult.compareTo(bi1) < 0 || bigResult.compareTo(bi2) > 0) {
                    return 0;
                }
    
                //取下一位
                bigMum = bigMum.divide(new BigInteger("10"));
    
                //如果取完了,跳出循环
                if (bigMum.equals(new BigInteger("0"))) {
                    break;
                }
            }
    
            //返回结果,  BigInteger->String->int
            return Integer.parseInt(bigResult.toString());
        }
    }
    View Code
  • 相关阅读:
    分享动态生成文字图片解决方案
    文本框的回车添加事件
    最小化到系统托盘代码
    匹配所有html标记 正则
    根据字体文件创建字体
    获取或设置当用户按 Enter 键时所单击的窗体上的按钮。
    c#webBrowser 实现自动填入选择下拉列表
    [08] Docker_2
    [07] Docker_1
    查了一下平板电视的价格行情
  • 原文地址:https://www.cnblogs.com/hezhiyao/p/7732939.html
Copyright © 2020-2023  润新知