C LeetCode->Reverse Integerを実現

799 ワード

Reverse digits of an integer. Example1: x = 123, return 321 Example2: x = -123, return -321
はんてんせいけい
主に境界条件に注意する
1:整数の最後のビットが0の場合、何を出力しますか?たとえば、100などです.
  
  
2:逆転整数がオーバーフローする可能性がある;入力が32ビットの整数であると仮定し、100000003オーバーフローを逆にします.
  
//
//  PalindromeNumber.c
//  Algorithms
//
//  Created by TTc on 15/6/6.
//  Copyright (c) 2015  TTc. All rights reserved.
//

#include "PalindromeNumber.h"
#include <ctype.h>
#include <limits.h>

#include <stdlib.h>
#include <stdbool.h>
#include <string.h>



static
int reverse(int x) {
    long long val = 0;
    do
    {
        val = val * 10 + x % 10;
        x /= 10;
    } while (x);
    
    return (val > INT_MAX || val < INT_MIN) ? 0 : val;
}
/*