4868. 数字反转
Constraints
Time Limit: 1 secs, Memory Limit: 256 MB
Description
给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例2)。
Input
输入共 1 行,一个整数N。
-1,000,000,000 ≤ N≤ 1,000,000,000。
Output
输出共 1 行,一个整数,表示反转后的新数。
Sample Input
样例1: 123 样例2: -380
Sample Output
样例1: 321 样例2: -83
水
#include <stdio.h>
#include <string.h>
int main() {
char num[15];
int head;
scanf("%s", &num);
if (num[0] == '-') {
printf("-");
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;
}