数字反转

 

描述:

给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例2)。

输入:

输入共 1 行,一个整数N。

-1,000,000,000 ≤ N≤ 1,000,000,000。

输出:

输出共 1 行,一个整数,表示反转后的新数。

样例输入:

样例 #1:
123

样例 #2:
-380

样例输出:

样例 #1:
321

样例 #2:
-83

算法:

#include<stdio.h>

int re(int x) {       //函数rs功能:不断分离最后一位在上次基础上*10
	int num = 0;
	while (x != 0)
	{
		int tail = x % 10;
		int num1 = num * 10 + tail;
		if ((num1 - tail) / 10 != num)   //判断数据是否溢出
		{
			return 0;
		}
		num = num1;
		x /= 10;
	}
	return num;
}

int main()
{
    int n;
    scanf("%d", &n);
    printf("%d",re(n));
    return 0;

}

 

        上天不会亏待努力的人,也不会同情假勤奋的人,你有多努力,时光它知道,路再远,终有尽,无论如何,我们都要一直坚持努力地走下去。

点赞