《leetCode》:Reverse Integer
来源:互联网 发布:杯装茶 知乎 编辑:程序博客网 时间:2024/06/05 03:23
题目描述:
Reverse digits of an integer.Example1: x = 123, return 321Example2: x = -123, return -321
实现代码如下:
#include<stdio.h>#include<stdlib.h>int reverse(int x) { long result=0;//这里设为long型,是为后面检查是否溢出int范围做准备。 int symbol=1; if(x<0){ x=-x; symbol=-1; } while(x!=0){ int temp=x%10; x/=10; result=result*10+temp; } //判断下result是否只在低31为有数字,高位为0 if(result>>31){ return 0; } else{ return (int)(symbol*result); } }int main(void){ int num; while(scanf("%d",&num)!=EOF){ int result=reverse(num); printf("%d\n",result); } return 0;}
这个题比较简单,代码也比较容易写,但是,我也是在本地环境编译运行成功之后提交了两次代码才成功。
第一次,错误具体截图如下:
相信出现这样的报错之后,我们都能够想到原因:溢出了。
那应该怎么解决了。
我的解决方法为:
第一步:将结果result设为long类型
第二步:经过翻转之后,将result右移31位之后看是否等于0,若等于零,则没有溢出,否则就是溢出。
小结
在平时的训练中,我们可能不会注意到溢出的问题,但是,在类似于leetCode平台刷题的过程中,我们会收获到这些东西。使我们写出来的程序更加robust。
1 0
- LeetCode:Reverse Integer
- LeetCode: Reverse Integer
- [Leetcode] Reverse Integer
- LeetCode : Reverse Integer
- [LeetCode] Reverse Integer
- Leetcode: Reverse Integer
- LeetCode 7 - Reverse Integer
- leetcode 104: Reverse Integer
- Leetcode : Reverse Integer
- 【leetcode】Reverse Integer
- [LeetCode]Reverse Integer
- LeetCode-Reverse Integer
- [leetcode] Reverse Integer
- LeetCode - Reverse Integer
- leetcode之Reverse Integer
- LeetCode | Reverse Integer
- LeetCode: Reverse Integer
- Leetcode: Reverse Integer
- DW学习心得(3)
- AFORGE库对摄像头操作的封装(续)
- 性能考虑,数组是首选
- Android 通过 Intent 传递类对象
- 汇编语言jmp和call的区别
- 《leetCode》:Reverse Integer
- 使用struts2的 下载
- ios打包ipa的四种实用方法(.app转.ipa)
- swift 快速奔跑的兔几 本节的内容是:应用程序沙盒
- 模板方法模式----设计模式系列
- uva532Dungeon Master
- ionic怎样使用LokiJS作为本地存储
- 动态链接库(DLL)总结---静态链接库的创建与使用(4)
- ubuntu13.10系统 安装中文输入法fcitx