c语言用递归算法写程序,输入一个非负整数,输出这个数的倒序数
时间: 2024-10-14 14:14:31 浏览: 44
在C语言中,你可以使用递归函数来实现一个数字的倒序输出。递归是一种函数调用自己的技巧,特别适合处理需要反复分解的问题,如数组元素、字符串等。以下是递归方式计算并打印一个整数倒序的一个简单示例:
```c
#include <stdio.h>
// 递归函数,接收一个整数作为参数
int reverse(int num) {
// 基线条件:如果输入为0或1,直接返回该数
if (num == 0 || num == 1)
return num;
// 递归条件:将原数的最后一位取出并添加到倒序结果的前面
return reverse(num / 10) * 10 + 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;
}
```
当你运行这个程序并输入一个数字,它会返回该数字的倒序表示。
相关问题
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。
用C语言编写 用递归算法写程序,输入一个非负整数,输出这个数字的倒序数
在C语言中,你可以使用递归函数来实现将一个非负整数转换为其逆序数。下面是一个简单的示例,用于演示如何实现这一功能:
```c
#include <stdio.h>
// 递归函数,输入n,返回其逆序数
int reverse(int n) {
// 基本情况:当n小于等于0时,直接返回0
if (n <= 0)
return 0;
// 递归情况:将n的最后一位取出并乘以10的相应幂次,然后加上逆序剩余部分
int last_digit = n % 10; // 取得最后一位
int remaining = reverse(n / 10); // 递归调用处理去掉最后一位后的部分
return remaining * 10 + last_digit; // 返回结果
}
int main() {
int num;
printf("请输入一个非负整数:");
scanf("%d", &num);
if (num >= 0) { // 检查输入是否有效
int reversed_num = reverse(num);
printf("该数字的倒序数是:%d\n", reversed_num);
} else {
printf("输入错误,请输入非负整数。\n");
}
return 0;
}
```
当你运行此程序时,它会提示用户输入一个非负整数,然后将其逆序显示。
阅读全文