本题要求实现一个求整数的逆序数的简单函数。
函数接口定义:
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
int reverse( int number )
{
if(number==0)
{
return 0;
}
int arr[10]; //用于存储数中每一位的值
int flag; //判断是正数还是负数
int sum = 0; //用于计算各个逆转后的和
int i = 0; //数组中非0的数存入道对应的数组中
int count; //统计非0个数
int j;
if(number < 0)
{
flag = -1;
number = -number;
}else{
flag = 1;
}
while(number%10==0)
{
number/=10;
}
while(number)
{
int temp = number%10;
arr[i++] = temp;
number/=10;
}
count = i - 1;
for(j = 0 ; j < i ;j++)
{
sum += arr[j]*pow(10,count);
count--;
}
if(flag<0)
sum = -sum;
return sum;
}