本题要求实现一个求非负整数的逆序数的简单函数,建议用递归实现。 函数接口定义: unsigned int reverse( unsigned int number ); 其中 number是用户传入的参数, number 的值不超过unsigned int的范围;函数须返
时间: 2024-03-23 10:36:34 浏览: 98
用递归算法实现整数逆序
4星 · 用户满意度95%
回number的逆序数,也就是将number的各个数字按照相反的顺序排列后得到的数。
以下是用递归实现的代码:
```
unsigned int reverse(unsigned int number) {
if (number < 10) {
return number;
} else {
return (number % 10) * pow(10, floor(log10(number))) + reverse(number / 10);
}
}
```
解释一下,如果number小于10,那么其逆序数就是它本身;否则,将number的个位数取出来,乘以10的位数次幂,再加上剩余数字的逆序数即可。
需要注意的是,在代码中用到了pow()、floor()和log10()函数,需要包含math.h头文件。另外,如果使用递归实现,需要考虑到递归深度,可能会导致栈溢出,需要谨慎使用。
阅读全文