用语言编写一个递归函数,将一个正整数的每一位取出来由高到低的顺序输出,数字之间加短横线
时间: 2023-12-03 20:47:31 浏览: 61
以下是Python语言的递归函数实现:
```python
def print_digits(n):
if n < 10:
print(n, end='')
else:
print_digits(n // 10)
print('-', n % 10, sep='', end='')
# 示例
print_digits(12345) # 输出:1-2-3-4-5
```
函数接受一个正整数,如果这个数小于10,直接输出。否则,递归调用自身处理数除以10的商(即高位),再输出数模10的余数(即低位)。注意输出时需要加短横线,并且要从高到低输出数字的每一位。
相关问题
编写一个递归函数,将一个正整数的每一位取出来由高到低的顺序输出,数字之间加短横线
以下是一个递归函数的示例代码:
```python
def print_digits(num):
if num < 10:
print(num, end='')
else:
print_digits(num // 10)
print('-', num % 10, sep='', end='')
# 示例使用
print_digits(12345)
```
输出结果为:
```
1-2-3-4-5
```
这个函数的思路是,对于一个大于等于 10 的数,将它除以 10 并递归调用函数,再输出余数和短横线。对于小于 10 的数,直接输出即可。注意在输出时,由于 Python3 中 `print()` 默认会在输出内容末尾添加一个换行符,因此我们需要使用 `end=''` 来覆盖默认行为。
编写一个用c语言写递归函数,将一个正整数的每一位取出来由高到低的顺序输出,数字之间加短横线
以下是用C语言编写的递归函数,可以将一个正整数的每一位取出来由高到低的顺序输出,数字之间加短横线:
```c
#include <stdio.h>
void printDigits(int n) {
if (n < 10) {
printf("%d", n);
} else {
printDigits(n / 10);
printf("-%d", n % 10);
}
}
int main() {
int num = 12345;
printDigits(num);
return 0;
}
```
在上面的代码中,函数 `printDigits` 使用递归的方式将数字的每一位取出来,并且在输出数字之间加上了短横线。当输入的数字小于 10 时,函数直接输出该数字;否则,函数先递归调用自身,将除最后一位之外的数字输出,然后再输出最后一位数字,并在前面加上一个短横线。运行上述代码会输出:`1-2-3-4-5`。