题目描述
给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例2)。
输入格式
一个整数 N
输出格式
一个整数,表示反转后的新数。
输入数据 1
123
Copy
输出数据 1
321
Copy
输入数据 2
-380
Copy
输出数据 2
-83
Copy
数据规模与约定
对于 100%100% 的数据,−1,000,000,000≤�≤1,000,000,000−1,000,000,000≤n≤1,000,000,000。
AC ����Code 俩都出来了再给个好评吧!
题解
思路1
- 输入一个数,如果是负数提前输出
-
,然后改成正数 - 然后循环,如果尾位为0(是10的倍数),那么除以10,直到没有尾位0
- 最后倒序输出
第一步非常简单
scanf("%d", &N);
if (N < 0) // 为负数
{
printf("-"); // 提前输出
N = -N; // 变为整数,也可以在特判外加一个 N = abs(N)
}
Copy
第二步
while (N % 10 == 0) // 如果尾位为0
{
N /= 10; // 除以10
}
Copy