给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例 22)。
输入格式
输入共 11 行,一个整数 NN。
输出格式
输出共 1 行,一个整数,表示反转后的新数。
数据范围
-1,000,000,000 \le N \le 1,000,000,000−1,000,000,000≤N≤1,000,000,000。
Sample Input
123
Sample Output
321
Sample Input 2
-380
Sample Output 2
-83
#include <stdio.h>
#include <string.h>
int main() {
char num[15];
int head;
scanf("%s", &num);//输入字符数字
if (num[0] == '-') {
printf("-");//如果字符数字有负号,令head=1
head = 1;
} else {
head = 0;
}
char new_num[15];
int i, j = 0;
for (i = (int)strlen(num) - 1; i >= head; i--) {
new_num[j++] = num[i];
}
new_num[j] = '\0';
if (new_num[0] == '0' && new_num[1] == '\0') {
printf("0");
} else {
for (i = 0; i < j; i++) {
if (new_num[i] != '0') {
break;
}
}
for (; i < j; i++) {
printf("%c", new_num[i]);
}
}
printf("\n");
return 0;
}