使用函数输出一个整数的逆序数 (20 分)
本题要求实现一个求整数的逆序数的简单函数。
函数接口定义:
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
结尾无空行
一(繁琐):
先算出数字位数(i),再循环i次实现逆向输出
int reverse( int number ){
int i,s=0;
int x = number,y;
for(i=0;;i++){
x = x/10;
if(x/1==0){
y = i;
break;
}
}
for(i=y;i>=0;i--){
s = s+(int)(number/pow(10,i))*pow(10,y-i);
number = number%(int)pow(10,i);
}
return s;
}
二(简洁):
int reverse( int number ){
int s = 0;
int x,i = 1;
if(number<0){
number = -1*number;
i = -1;
}
while(number>0){
x = number%10; //最后一位
s = s*10+x; //s*10,x最为个位
number = number/10; //去掉最后一位以后的数
}
s = s*i; //number大于0时,i=1,s不变;number小于0时,i在前面if中变为-1,此时s=s*-1,既s前加上负号
return s;
}