题目描述:给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零。数据范围 -1,000,000,000≤ N≤ 1,000,000,000 。
分析:按要求模拟,考虑全面需要耐心,细心。
代码:
#include<cstdio>
int main()
{
int n, ok;
while(~scanf("%d",&n))
{
if (n < 0) //负数先输出符号,再转为正数处理
{
printf("-");
n = -n;
}
if (n == 0)
printf("0\n");
else
{
ok = 0; //标记要输出的 0 之前是否已有非 0 数输出过
while(n)
{
if(n%10 == 0 && ok || n%10 != 0)
{
printf("%d",n%10);
ok = 1;
}
n /= 10;
}
printf("\n");
}
}
return 0;
}