标签:
题目描写叙述:
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