数字反转
题目描述:
给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例 2)。
输入格式
输入共 11 行,一个整数 NN。
输出格式
输出共 1 行,一个整数,表示反转后的新数。
数据范围
−1,000,000,000≤N≤1,000,000,000。
输入样例1
123
输出样例1
321
输入样例2
-380
输出样例2
-83
闲聊:
- 这一题关键是对负数的处理和对尾数为0的处理
- 可以考虑使用数组存储数字,然后对数组反转,判断位数为0
代码如下
#include<stdio.h>
main()
{
int n,i,j=0,flag=0;
int result[14];
scanf("%d",&n);
if(n<0)
{
printf("-");
n=-n;
}
while(n!=0)
{
result[j]=n%10;
j++;
n/=10;
}
for(i=0;i<j;i++)
{
if(result[i]==0&&flag==1)
{
printf("%d",result[i]);
}
else if(result[i]!=0)
{
printf("%d",result[i]);
flag=1;
}
}
}