本题要求实现一个求整数的逆序数的简单函数。
函数接口定义:
int reverse( int number );
其中函数reverse
须返回用户传入的整型number
的逆序数。
裁判测试程序样例:
#include <stdio.h>
int reverse( int number );
int main()
{
int n;
scanf("%d", &n);
printf("%d\n", reverse(n));
return 0;
}
/* 你的代码将被嵌在这里 */
输入样例:
-12340
输出样例:
-4321
解题思路: 可以先判断传入参数是否为0,是的话直接返回0,否则取余数依次拆分。
#include<math.h>
int reverse(int number) {
int i = 0,a, sum = 0;
if(number==0)
{
return 0;
}
else {
while (number) {
a = number % 10;
number /= 10;
sum = sum * 10 + a;//逆序
}
}
return sum;
}
代码中的逆序过程:
- 0*10+0=0
- 0*10+(-4)=-4
- -4*10+(-3)=-43
- -43*10+(-2)=-432
- -432*10+(-1)=-4321