题目描述
给定一个整数,将该数各位上的数字反转后得到一个新的数字。新的数字也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零,例如输入 −380,反转后得到的新数应为 −83.
输入格式
一个整数 N
−10^ 9≤N≤10^9
输出格式
一个整数,翻转后的结果
首先定义了一个名为reverseInteger的函数,该函数接受一个整数参数num,并返回反转后的新数。
在函数内部,我们首先判断给定整数num的正负性,如果为负数,则将其转为正数处理,并记录下来
然后使用循环逐位将数字反转,最后根据之前记录的符号,将反转后的数变为负数(如果需要),并返回结果。
在main函数中,我们首先输入一个整数N,然后调用reverseInteger函数得到反转后的新数,并将其输出。
#include <stdio.h>
int reverseInteger(int num)
{
int is_negative = 0;
if (num < 0)
{
is_negative = 1;
num = -num;
}
int reversed_num = 0;
while (num > 0)
{
int digit = num % 10;
reversed_num = reversed_num * 10 + digit;
num /= 10;
}
if (is_negative)
{
reversed_num = -reversed_num;
}
return reversed_num;
}
int main()
{
int N;
scanf("%d", &N);
int reversed = reverseInteger(N);
printf("%d\n", reversed);
return 0;
}