zoukankan      html  css  js  c++  java
  • LeetCode 7 Reverse Integer

    LeetCode 7 Reverse Integer

    新颖之处:

    1. 如何判断一个数在反转时是否溢出呢?

    假设int的范围上限为1234,在反转后应该为4321,这时候一定会爆掉int,应该返回0。y记录反转结果,prey记录上次结果,如果 y/10 != prey 就代表溢出,因为y溢出会致使y计算错误,即 y/10 无法与 prey 相匹配。
    2. 第一次遇到uint32_t这种类型,也是涨知识了!原以为C是很简单的语言,太肤浅了,肤浅......

    Code:

        #include "stdio.h"
        #include "stdint.h"
        
        int reverse(int x){
        	int y = 0, z = (x<0), prey = 0;
        	uint32_t xx ;	// 第一次遇到这种类型
        	xx = (z?-x:x);
        	while(xx){
        		y = y*10 + xx%10;
        		// 判断是否溢出
        		if( y != prey*10 ) return 0;
        		prey = y;
        		xx /= 10;
        	}
        	return z?-y:y;
        }
        int main(){
        	int n;
        	while(scanf("%d",&n)!=EOF){
        		printf("%d
    ",reverse(n));
        	}
        	return 0;
        }
    如要转载请注明转载出处:http://www.cnblogs.com/WArobot
  • 相关阅读:
    selenium
    selenium
    selenium
    selenium-控制浏览器操作
    selenium元素定位
    selenium测试-open chrome
    selenium环境搭建
    selenium简介
    74 计算机图形学开源处理库
    73 QT编程入门
  • 原文地址:https://www.cnblogs.com/WArobot/p/6691514.html
Copyright © 2011-2022 走看看