本题要求实现一个求整数的逆序数的简单函数。
函数接口定义:
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
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
正确代码√
/*
int reverse( int number ){
int a,sum=0;
while(number!=0){ //这里保证这个数不等于0
a=number%10; //每次取余就是取最后一个数
number=number/10; //这里每次除10取整
sum=sum*10+a; //再通过sum和加起来
}
return sum;
}
*/
int reverse( int number )
{
int a,sum = 0;
while(number!=0)
{
a=number%10;
number=number/10;
sum = sum*10+a; //通过sum相加求和
}
return sum;
}
注意事项:
本题主要强调具体的解题逻辑,而且也是很常见很常用的循环结构,研究透这道题,可以举一反三运用到其他类似的环境中去。;-)
1、代码中的while(number!=0)类似于while(1)的作用,判断循环开始的条件
2、让number取余,这样可以得到每次的最后一位的具体数据
3、让number消减一位,这样可以使得末尾数字向前推进,符合逆序数的要求。
4、通过sum相加求和