#91: 给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最
时间限制:2 sec. 内存限制:128 MB.
试题描述
给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例2)。
输入格式
数据有多组,对于每一组数据
输入共 1 行,一个整数N。-1,000,000,000 ≤ N≤ 1,000,000,000。
输出格式
输出共 1 行,一个整数,表示反转后的新数。
样例输入
样例 #1:
123
样例 #2:
-380
样例输出
样例 #1:
321
样例 #2:
-83
其它说明
#1
#include<stdio.h>
int main()
{
int n,m;
while(scanf("%d",&n)!=EOF)
{
m = 0;
while(n)//为了实现无限循环,当n=0的时候就终止运行
{
m=10*m+n%10;
n/=10;
}
printf("%d\n",m);
}
return 0;
}
#2
#include <stdio.h>
#include <string.h>
#define N 20
int main()
{
char n[N];
int len, flag = 0, i;
while(scanf ("%s", &n)!=EOF)
len = strlen(n);
if (n[0] == '-')
{
printf ("-");
for (i = len - 1; i > 0; i--)
{
if (flag || n[i] != '0')
{
printf ("%c", n[i]);
flag = 1;
}
}
}
else
{
for (i = len - 1;i >= 0;i--)
{
if (flag || n[i] != '0')
{
printf ("%c", n[i]);
flag = 1;
}
}
}
printf ("\n");
return 0;
}