zoukankan      html  css  js  c++  java
  • leetcode7.整数反转

    public class LeetCode7 {
    //数据存放
    public static int num;
    //依次存放单个数据单位
    public static int newRec;
    //存放反转数据,并初始化为0
    public static int rec=0;
    public static void main(String args[]){
    Scanner sc=new Scanner(System.in);
    System.out.println("请输入你要反转的数值:");
    num=sc.nextInt();
    /**
    * while循环依次将原始数据个位数挪到新数据最顶位,并删除原始数据个位重新循环
    * 做法:通过原始数据取余得到个位数据,然后移位到新数据
    * 之后将原始数据除10,去掉原始数据最后一位。
    * 第二次循环重新之前步骤,此时将新数据*10并与新个位数相加,得到一个新数据
    * 例:1234->
    * 4,添4
    * 123->
    * 3.43
    * ...
    */
    while (num!=0){
    //获取个位数数值
    newRec=num%10;
    //存放数据(依次将个位数newRec挪到最高位)
    if(rec>Integer.MAX_VALUE/10||(rec==Integer.MAX_VALUE/10&&newRec>7))System.out.println("0");
    if(rec<Integer.MIN_VALUE/10||(rec==Integer.MIN_VALUE/10&&newRec<-8))System.out.println("0");
    rec=rec*10+newRec;
    num/=10;
    }
    System.out.println("该数值的反转数值为"+rec);
    System.out.println(Integer.MAX_VALUE);
    System.out.println(Integer.MIN_VALUE);
    }
    }

    /**
    * 还需要判断是否溢出,如果溢出则需要返回0
    * leetcode题解
    * class Solution {
    * public int reverse(int x) {
    * int rec=0,newRec;
    * while(x!=0){
    * newRec=x%10;
    * if(rec>Integer.MAX_VALUE/10||(rec==Integer.MAX_VALUE/10&&newRec>7))return 0;
    * if(rec<Integer.MIN_VALUE/10||(rec==Integer.MIN_VALUE/10&&newRec<-8))return 0;
    * rec=rec*10+newRec;
    * x/=10;
    * }
    * return rec;
    * }
    * }
    */
  • 相关阅读:
    推荐随笔
    搭建http服务
    python之numpy和pandas
    eclipse项目打包
    keras安装
    eclipse设置快速提示符
    linux常用命令
    Webpack3 从入门到放弃
    【ES6】Generator+Promise异步编程
    【Vue】删除数组元素,导致剩余元素被重新渲染
  • 原文地址:https://www.cnblogs.com/shudaixiongbokeyuan/p/13368959.html
Copyright © 2011-2022 走看看