本题要求实现一个求整数的逆序数的简单函数。
函数接口定义:
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 )
{
int i; //循环变量
int flag = 0; //中介,判断有没有变过号
int sum = 0; //逆序总和
int t; //存放number每一位数
if (number < 0) //如果要逆序的数小于 0 ,变成正数好算一点,然后 flag 赋值为 1 ,表示 变过号,等等需要变回来
{
number = -number;
flag = 1;
}
while (number) //当number不等于 0 时循环
{
t = number % 10; // 模10 取最后一位数
sum = sum * 10 + t; //按公式逆序运算
number /= 10; //整除10 把最后一位除掉
}
if (flag == 1) return -sum; //如果前面变过号 flag 会变成 1 这个时候就需要变回来
else return sum; //没有直接返回给 reverse 就好了
}