递归函数实现正整数从高位到低位输出
时间: 2023-11-17 20:04:43 浏览: 138
递归函数可以很好地实现正整数从高位到低位输出。具体实现方法是将该正整数不断除以10,直到商小于10,然后再将商和余数分别输出。这个过程可以通过递归函数来实现。下面是一个示例代码:
```
#include <iostream>
using namespace std;
void printNum(int n) {
if (n < 10) {
cout << n << endl;
} else {
printNum(n / 10);
cout << n % 10 << endl;
}
}
int main() {
int n;
cin >> n;
printNum(n);
return 0;
}
```
在这个示例代码中,printNum函数接收一个正整数n作为参数,如果n小于10,则直接输出n;否则,递归调用printNum函数,将n除以10的商作为参数传入,直到n小于10为止。然后再输出n除以10的余数。这样就可以实现正整数从高位到低位输出了。
相关问题
c语言采用递归思想,设计并实现一个函数,其功能是将正整数n, 由低位到高位倒序输出
在C语言中,我们可以利用递归的思想设计一个名为`reverse digits`的函数,用于将输入的正整数n从低位到高位逆序输出。下面是一个简单的实现示例:
```c
#include <stdio.h>
// 定义递归函数,参数n表示当前处理的数字,base表示剩余位数的基数(10进制)
void reverse(int n, int base) {
if (n == 0) { // 递归出口,当n为0时停止递归
return;
}
// 将当前最低位添加到结果字符串的开头
printf("%d", n % base);
// 继续对去掉最低位后的数字进行递归调用
reverse(n / base, base); // 避免整数溢出,每次除以基数
}
int main() {
int num;
printf("请输入一个正整数: ");
scanf("%d", &num);
// 调用函数开始逆序打印
reverse(num, 10);
printf("\n");
return 0;
}
```
当你运行这个程序并输入一个正整数,比如12345,它会输出54321。
编写一个递归函数,将一个正整数的每一位取出来并按从高位到低位的顺序依次输出,数字之间加上短横线。 例如:正整数为123,则输出1-2-3。 提示:考虑用递归函数实现该任务。
以下是 Python 代码实现:
```
def print_digits(n):
if n < 10:
print(n, end='')
else:
print_digits(n // 10)
print('-', n % 10, sep='', end='')
n = int(input('请输入一个正整数:'))
print_digits(n)
```
首先定义一个递归函数 `print_digits`,该函数的参数是一个正整数 `n`。如果 `n` 是个一位数,直接输出即可;否则,递归地输出 `n` 的除个位以外的所有位,然后输出个位并在前面加上短横线。注意,为了保证数字之间输出短横线,需要在 `print` 函数中指定 `end` 参数为 `'-'`。
阅读全文