编写一个递归函数,将一个正整数的每一位取出来并按从高位数到低位数的顺序依次输出。 约定输入的每一位数之间用短横线隔开。
时间: 2024-10-19 12:08:02 浏览: 67
你可以使用Python编写一个简单的递归函数来实现这个需求。下面是一个示例:
```python
def print_digits_in_place(n):
# 基本情况:当n为零时,返回空字符串
if n == 0:
return ''
# 递归情况:获取n的最后一位数字,并将其添加到前几位数字的结果前面
last_digit = n % 10
rest_digits = print_digits_in_place(n // 10)
# 返回结果字符串,包括最后一位数字和前几位数字
return '-' + str(last_digit) + rest_digits
# 测试函数
number = 123456
formatted_number = print_digits_in_place(number)
print(formatted_number) # 输出:-6-5-4-3-2-1
```
这个函数首先检查基本情况(即n为0),然后通过递归不断取出n的最后一位数字,并在下一次调用时排除掉这个位。最后,将每位数字连接起来,并在前面添加短横线。
相关问题
编写一个递归函数,将一个正整数的每一位取出来并按从高位到低位的顺序依次输出,数字之间加上短横线。
以下是 Python 语言的实现代码:
```python
def print_digits(n):
if n < 10:
print(n)
else:
print_digits(n // 10)
print("-")
print(n % 10)
```
这个函数首先检查输入的数字是否小于 10,如果是,直接输出该数字。否则,使用递归调用将该数字的第一位和剩余部分分离。然后递归调用该函数来处理剩余部分,最后在每次递归调用返回时输出一个短横线并输出该数字的最后一位。
C++编写一个递归函数,将一个正整数的每一位取出来并按从高位到低位的顺序依次输出,数字之间加上短横线。
以下是实现该功能的 C++ 递归函数代码:
```cpp
void printDigits(int num) {
if (num < 10) {
cout << num << "-";
} else {
printDigits(num / 10);
cout << num % 10 << "-";
}
}
```
这个函数首先判断传入的数字是否小于 10,如果是,则直接输出该数字并加上短横线,递归结束;否则,先递归调用自身处理 num 除以 10 的结果,再输出 num 对 10 取余的结果并加上短横线。这样就能够从高位到低位依次输出每一位数字了。
阅读全文
相关推荐
















