用递归算法编写C语言代码,输入一个非负整数,输出这个数的倒序数
时间: 2024-10-12 11:17:59 浏览: 183
递归是一种通过函数自身调用来解决问题的技术,在C语言中,我们可以用递归的方式来计算一个整数的倒序。下面是一个简单的示例,它会将输入的数字每次除以10并取余数,然后把余数加到结果前面:
```c
#include <stdio.h>
// 递归函数,用于计算倒序数
int reverse(int num) {
// 基础情况:当num为0时返回0
if (num == 0)
return 0;
// 递归情况:返回当前位的数值加上剩余位的倒序
else
return num % 10 + reverse(num / 10);
}
int main() {
int input;
printf("请输入一个非负整数: ");
scanf("%d", &input);
// 确保输入的是非负整数
if (input < 0) {
printf("输入错误,必须是非负整数。\n");
return -1;
}
int reversed = reverse(input);
printf("该数的倒序是: %d\n", reversed);
return 0;
}
```
当你运行这个程序并输入一个数字时,例如54321,它会输出12345。
相关问题
4 用递归算法写程序,输入一个非负 整数,输出这个数的倒序数。 输入说明 一个非负整数 输出说明 倒序结果 输入示例 123 输出示例 321 C语言编写
在C语言中,你可以使用递归函数来实现输入整数的倒序。下面是一个简单的递归函数示例:
```c
#include <stdio.h>
// 定义递归函数reverse
int reverse(int num) {
// 基础情况:当num为0或1时,直接返回该数
if (num == 0 || num == 1)
return num;
// 递归情况:将num的最后一位数字添加到其去掉最后一位后的倒序数上
return reverse(num / 10) * 10 + num % 10;
}
int main() {
int input;
printf("请输入一个非负整数: ");
scanf("%d", &input);
// 调用reverse函数并输出结果
int reversed = reverse(input);
printf("倒序结果: %d\n", reversed);
return 0;
}
```
在这个程序中,`reverse`函数会不断地拆分输入的数字,直到遇到基本情况(也就是数字本身或1),然后逐步构建出倒序的结果。当你运行这个程序并输入123,它会输出321。
用递归算法写程序,输入一个非负整数,输出这个数的倒序数。 输入说明:一个非负整数 输出说明:倒序结果 输入示例 123 输出示例 321 用C语言编写程序,用数据结构的知识
在C语言中,我们可以使用递归函数来实现非负整数的倒序。递归是一种解决问题的技术,它通过将大问题分解成规模更小的相同问题来求解。对于这个问题,我们创建一个函数,接受一个整数作为输入,并返回其各位数字的逆序。
```c
#include <stdio.h>
// 递归函数,用于获取数字的最后一位并处理剩余部分
int reverse(int num) {
// 基本情况:当num为0时,返回0
if (num == 0)
return 0;
// 提取最后一个数字,其余部分乘以10再递归处理
int last_digit = num % 10; // 取余操作得到最后一位
int remaining = num / 10; // 除以10去掉最后一位
// 递归返回最后一位和剩余位的倒序之和
return last_digit + reverse(remaining);
}
int main() {
int input;
printf("请输入一个非负整数: ");
scanf("%d", &input);
// 调用函数得到倒序数并打印结果
int reversed_num = reverse(input);
printf("倒序结果是: %d\n", reversed_num);
return 0;
}
```
阅读全文
相关推荐
















