#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 ",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 (" "); return 0; }