头歌c语言实验递归实现一个整数的逆序答案
时间: 2024-12-22 18:31:12 浏览: 15
在C语言中,使用递归实现一个整数的逆序是一个常见的练习,它涉及到数组操作和函数的嵌套调用。下面是一个简单的示例,演示如何通过递归来反转一个整数:
```c
#include <stdio.h>
// 函数声明,接收一个整数作为参数并返回逆序后的整数
unsigned long long reverse(int num);
int main() {
int input;
printf("请输入一个整数: ");
scanf("%d", &input);
// 调用函数并打印结果
unsigned long long reversed = reverse(input);
printf("逆序后的整数是: %llu\n", reversed);
return 0;
}
// 递归函数,核心部分
unsigned long long reverse(int num) {
if (num == 0) { // 递归终止条件:当输入为0时直接返回0
return 0;
} else {
// 取出最低位数字,然后将剩余部分继续递归处理
unsigned long long last_digit = num % 10;
unsigned long long remaining = num / 10; // 高位数字移除最低位后的值
return last_digit * pow(10, sizeof(unsigned long long) * 8 - 1) + reverse(remaining); // 乘法用于插入低位数字到高位
}
}
```
在这个例子中,`reverse`函数首先检查输入是否为0,如果是则直接返回0。如果不是,就取出最低位的数字,然后对剩下的部分再次调用自身,直到整个数都被处理完。
阅读全文