java integer reverse_Leetcode7 Reverse Integer Java实现及分析

首先

public int reverse(intx) {

int ans = 0;

while(x!=0) {

int temp = x%10;

x/=10;

ans = ans*10+temp;

}

returnans;

}

但是这样无法检验最终结果是否溢出。

我们可以看到,溢出的原因是ans*10+temp>MAX或ans*10+temp

对于正数,举个小点的例子,一个6bit的整数,范围在[-32,31],ans>3(31/10)的话,最小ans=4,乘10必然溢出,对应情况1。若ans<3,最大ans=2,乘10+9=29都不会溢出,对应不溢出情况。若ans=3,则分情况考虑,若temp>1,则溢出,temp<=1,则不会溢出,对应情况2。(真是个数学问题啊……要严格推导的话还要考虑向下取整,真的麻烦……)

于是对于正数,有:

1.ans>MAX/10时,ans*10+temp确定会溢出;

2.ans==MAX/10且temp>7时,ans*10+temp确定会溢出。

负数同理。

为什么是7呢。因为2^1=2,2^2=4,2^3=8,2^4=16;2^5=32,2^6=64,2^7=128,2^8=256……可以发现,4个一循环,分别个位是2,4,8,6。2^31对应的是8,则2^31-1个位是7。

故有:

public int reverse(intx) {

int ans = 0;

while(x!=0) {

int temp = x%10;

x/=10;

if(ans>Integer.MAX_VALUE/10||(ans==Integer.MAX_VALUE/10&&temp>7)) return 0;

if(ans

ans = ans*10+temp;

}

returnans;

}

3c9de4b2101a93e51f77a94eb4e85e21.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/560506.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java swing linux_Linux下关于解决JavaSwing中文乱码的情况

前两天在linux中运行java 老是出乱码&#xff0c;很苦恼&#xff0c;后来网上找了好多解决办法。有些可行&#xff0c;有些不可行&#xff0c;今天总结一下。redhed 貌似没出现乱码 本身就jdk就支持中文红旗linux suse等都不支持&#xff0c;需要自己手工配置&#xff0c;解决…

单片机实验:外部中断按键

这是之前写的&#xff0c;一直没发。 实验内容&#xff1a; 实验大致上就是说&#xff1a;按键不按的时候&#xff0c;灯一直亮&#xff0c;按键按下的时候&#xff0c;灯不亮&#xff0c;报警器响。现在给了汇编语言&#xff0c;要改成c语言&#xff0c;并在proteus里面仿真…

java 重复代码优化_Java代码优化

优化实践1.try{}catch(){}使用1)查询中不要使用try{}catch(){}语句2)循环中不要使用try{}catch(){}语句3)异常处理不要对于所有的异常捕获都使用Exception&#xff0c;最好是捕获对应的异常类型&#xff0c;处理日志方式&#xff1a;1、打印错误日志2、调用错误业务逻辑处理函数…

java 06_JAVA06 数组

1.设计思路&#xff1a;首先设置长度为10的数组&#xff0c;设置Random引用对象&#xff0c;在循环中生成一个随机数存储在数组中&#xff0c;累加和&#xff0c;利用对话框输出结果。2.程序流程图&#xff1a;3.源程序代码&#xff1a;1 //2016/11/062 //随机生成10个数&#…

java service 事物_Service 事务(JdbcUtils 升级)

1. DAO 事务// 在 DAO 中处理事务真是"小菜一碟"public void xxx(){Connection con null;try{con JdbcUtils.getConnection();con.setAutoCommit(false); // 开启事务QueryRunner qr new QueryRunner();String sql ...;Object[] params ...;qr.update(con,sql,p…

java 8.0 sinffer_jpcap 配置方法,问题解决,模拟sniffer程序。(附JAVA程序,jar,dll包等环境)...

一、 Eclipse环境下安装与配置Jpcap相关源程序、jpcap jar包&#xff0c;dll包&#xff0c;帮助文档。1、下载安装winpcap2、jpcap官方文件中lib包下&#xff0c;有两个文件&#xff0c;jpcap.dll和jpcap.jar。jpcap.dll-->JAVA安装路径/jre1.6.0_06/bin (JRE目录)jpcap.j…

mysql工作中遇到的问题_MySQL工作中遇到的问题记录

1&#xff1a;log_slave_updates:从库1搭建级联从库2&#xff0c;从库1需要开启log_slave_updates&#xff0c;修改/etc/my.cnf&#xff0c;增加一行log_slave_updates1&#xff0c;重启数据库。http://blog.itpub.net/12679300/viewspace-1319263/2&#xff1a;ERROR 1418 (HY…

java 基本格式

java基本格式&#xff1a; 所有的java程序必须放在一个类之中才可以执行。 主方法main是整个java程序的入口&#xff0c;所有程序都是从public static void main(String[] args)开始运行的。 类定义有两种形式&#xff1a; public class:文件名和类名一致。每一个*.java文件…

python xgboost实战_史上最详细的XGBoost实战

0. 环境介绍Python 版 本&#xff1a; 3.6.2操作系统  &#xff1a; Windows集成开发环境&#xff1a; PyCharm1. 安装Python环境安装Python首先&#xff0c;我们需要安装Python环境。本人选择的是64位版本的Python 3.6.2。去Python官网https://www.python.org/选择相应的版本…

java web导入tomcat_记一次在服务器上导入javaweb 项目的经历---tomcat服务器-Go语言中文社区...

1. 导入数据库远程linux服务器mysql数据库导入和导出.sql文件大部分情况本地开发环境为windows&#xff0c;部署的服务器为Linux&#xff0c;本地数据库导出.sql文件后需要远程导入服务器&#xff0c;具体如下。首先连接服务器&#xff0c;即服务器ip&#xff0c;协议&#xff…

java 2d绘图 stroke_Java标准教程:Java 2D绘图--第4章使用Text

Java标准教程&#xff1a;Java 2D绘图--第4章使用Text本节介绍文本API的用法&#xff0c;以及他们的渲染能力。至今为止&#xff0c;您已经有了基本的Java 2D文本API&#xff0c;同时知道如何设置字体和位置&#xff0c;以及绘制文本。本节扩展了这些知识&#xff0c;同时更深入…

java 定义和导入包

java定义和导入包&#xff1a; 为了更好地组织类&#xff0c;java提供了包机制。把功能相似或相关的类或接口组织在同一个包中&#xff0c;方便类的查找和使用。同一个包中的类名不同&#xff0c;不同包中类名可以相同。同时调用两个不同包中相同类名的类时&#xff0c;应该加…

php李捷,【问题解答】蝶泳手外划的作用

一直以来总是弄不明白&#xff0c;蝶泳手外划的作用&#xff0c;以及正确的外划动作&#xff0c;请指教。”我&#xff1a;先上两个图&#xff0c;您自己分析一下&#xff1a;我&#xff1a;蝶泳的划手路线和打腿的幅度和力度是相匹配的&#xff0c;如果打腿幅度小频率快&#…

ltrim函数php,php ltrim函数怎么用?

php ltrim()函数用于删除字符串左边的空格或其他预定义字符&#xff0c;语法为“ltrim(string,charlist)”&#xff0c;参数string指定需要处理的字符串&#xff0c;参数charlist指定要从字符串中删除哪些字符&#xff1b;然后返回已修改的字符串。php ltrim函数作用&#xff1…

java strcpy,详解C语言中strcpy()函数与strncpy()函数的使用

C语言strcpy()函数&#xff1a;复制字符串头文件&#xff1a;#include 定义函数&#xff1a;char *strcpy(char *dest, const char *src);函数说明&#xff1a;strcpy()会将参数src 字符串拷贝至参数dest 所指的地址。返回值&#xff1a;返回参数dest 的字符串起始地址。附加说…

使用github+hexo搭建静态blog

解决了个人博客图片不显示问题。解决了打开页面产生404问题。学习了如何更换界面主题。学习了如何使用Git。 注&#xff1a;这篇文章仅仅是入个门&#xff0c;了解一下怎么使用githubhexo创个静态blog&#xff0c;具体blog细节比如个人介绍&#xff0c;评论插件&#xff0c;音…

java 安卓调试,Android Studio(二十一):调试你的应用

Android Studio包含了一个调试器&#xff0c;允许你调试运行在Android虚拟机或连接的Android设备的应用。通过Android Studio的调试器&#xff0c;你可以&#xff1a;1、 选择你调试设备的app2、 为你的代码设置断点3、 在运行时检测变量和表达式4、 截图和录像通过点击工具栏中…

mysql hammerdb,[料理佳餚] 用 HammerDB 來執行資料庫 TPC-C 效能量測

TPC-C 模擬的情境TPC-C 模擬的情境是一個大型的商品批發商&#xff0c;擁有若干個倉庫&#xff0c;每個倉庫擁有 100000 件商品庫存、負責為 10 個地區供貨&#xff0c;每個地區服務 3000 名客戶&#xff0c;每名客戶平均一筆訂單有 10 項商品&#xff0c;所有訂單中約 1% 在其…

axure 鼠标变成手,Axure教程|鼠标移入移出自动显示与隐藏三级菜单

前几天因工作需要做一个鼠标移入显示隐藏菜单&#xff0c;鼠标移出自动隐藏菜单&#xff0c;做的时候觉得没有什么问题&#xff0c;做完后预览就发现一个很严重的问题&#xff0c;就是鼠标移出一级菜单向二级菜单时二级菜单不显示&#xff0c;或者二级菜单显示三级菜单不显示。…

php websocket应用实例,php使用websocket示例详解

下面我画了一个图演示 client 和 server 之间建立 websocket 连接时握手部分&#xff0c;这个部分在 node 中可以十分轻松的完成&#xff0c;因为 node 提供的 net 模块已经对 socket 套接字做了封装处理&#xff0c;开发者使用的时候只需要考虑数据的交互而不用处理连接的建立…