7. Reverse Integer

来源:互联网 发布:淘宝2016销售额是多少 编辑:程序博客网 时间:2024/06/15 08:03

题目

Reverse digits of an integer.

Example1: x = 123, return 321
Example2: x = -123, return -321
Note:
The input is assumed to be a 32-bit signed integer. Your function should return 0 when the reversed integer overflows.

分析

1 负数怎么处理?

2 超出范围数据怎么处理,如11113 翻转后31111超范围怎么办?


处理方案

1 负数先变成正数处理,最后 再加个负号回去;

2 若是超出范围,返回值为0

代码

#include < stdio.h >

#include < limits.h >
#include < float.h >

 int main()
 {
     int m=0 ;
     int x ;
     int reverse( int x );
     scanf("%d\n" , &x );

     m = reverse( x );

      }
 
 int reverse(int x)
 {
     

     int flag = 0;
     long int reg = 0;
     int n = 0;
          //将负数处理为整数
    if(x<0)
     {
         x = -x;
         flag = -1;
     }
     
//翻转输出
     while(x)  
    {  
            reg = reg * 10 + x % 10;  
            x/=10;  
            printf("%d\n",reg);
     }  
        
     //判断是否 数超阈值
     if(reg > INT_MAX || reg < INT_MIN)
     {
            reg = 0;
     }
     
     // 负数变回正数
     if(flag == -1)
     {
         reg = -reg;
     }
    
     return reg;
 }

原创粉丝点击