标签:
题目描写叙述:
Reverse digits of an integer.
Example1: x = 123, return 321
Example2: x = -123, return -321
思路:先推断给的数是正数还是负数还是零。假设是零,则直接返回。
假设是正数,则通过%和/运算求得给定数字的各位,再又一次组合得到要求得数字。
假设为负数则先转换为正数。再按正数处理,最后返回时再乘-1。
代码:
int reverse(int x) {
int * buffer;
int i = 0;
int j = 0;
int reverseN = 0;
buffer = (int *)malloc(sizeof(int)*20);
if(x == 0)
return 0;
if(x > 0)
{
while(x != 0)
{
buffer[i] = x % 10;
x = x / 10;
i++;
}
while(j < i)
{
reverseN = reverseN * 10 + buffer[j];
j++;
}
return reverseN;
}
if(x < 0)
{
x = x * -1;
while(x != 0)
{
buffer[i] = x % 10;
x = x / 10;
i++;
}
while(j < i)
{
reverseN = reverseN * 10 + buffer[j];
j++;
}
return reverseN * -1;
}
}版权声明:本文博主原创文章,博客,未经同意不得转载。
标签:
原文地址:http://www.cnblogs.com/bhlsheji/p/4794988.html