递归函数实现正整数从高位到低位输出
时间: 2023-11-17 10:04:43 浏览: 86
递归函数可以很好地实现正整数从高位到低位输出。具体实现方法是将该正整数不断除以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的余数。这样就可以实现正整数从高位到低位输出了。
相关问题
编写一个递归函数,将一个正整数的每一位取出来并按从高位到低位的顺序依次输出,数字之间加上短横线。 例如:正整数为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` 参数为 `'-'`。
c++编写一个递归函数,将一个正整数的每一位取出来并按从高位到低位的顺序依次输出,数字之间加上短横线。
以下是C++递归函数的实现:
```cpp
#include <iostream>
using namespace std;
void printDigits(int n) {
if (n < 10) { // 如果只剩一位数字
cout << n; // 直接输出该数字
} else { // 否则递归输出高位数字
printDigits(n / 10);
cout << "-" << n % 10; // 输出当前位数字并加上短横线
}
}
int main() {
int n;
cout << "请输入一个正整数:";
cin >> n;
cout << "该数字的每一位为:";
printDigits(n);
cout << endl;
return 0;
}
```
该程序会从输入读取一个正整数,然后调用`printDigits`函数递归输出该数字的每一位。在递归过程中,每次先递归输出高位数字,然后输出当前位数字并加上短横线。最终输出的数字是从高位到低位的顺序。例如,输入12345,输出为1-2-3-4-5。