当前位置: 代码迷 >> 综合 >> JAVA算法:整数旋转(Rotate Integer)JAVA版本
  详细解决方案

JAVA算法:整数旋转(Rotate Integer)JAVA版本

热度:37   发布时间:2024-01-15 19:24:05.0

JAVA算法:整数旋转(Rotate Integer)JAVA版本

给定一个整数,输出将其旋转后的结果。

解决这个问题需要注意思考几个特殊点: 
1、给定的整数处理后超出整数的表示范围,溢出。 
2、尾数有0的情况,例如:100,处理后的结果是什么? 
3、程序中如何捕获异常。

算法分析(思路)

通过对数字模十取余得到它的最低位。其实本题考查的是整数相加的溢出处理,检查溢出有这么几种办法:

两个正数数相加得到负数,或者两个负数相加得到正数,但某些编译器溢出或优化的方式不一样
对于正数,如果最大整数减去一个数小于另一个数,或者对于负数,最小整数减去一个数大于另一个数,则溢出。这是用减法来避免加法的溢出。
使用long来保存可能溢出的结果,再与最大/最小整数相比较

算法设计

package com.bean.algorithm.basic;public class RotateInteger {public int reverse(int x) {long result = 0;int tmp = Math.abs(x);while(tmp>0){result *= 10;result += tmp % 10;if(result > Integer.MAX_VALUE){return 0;}
  相关解决方案