C++编写一个递归函数,将一个正整数的每一位取出来并按从高位到低位的顺序依次输出,数字之间加上短横线。 例如:正整数为123,则输出1-2-3,注意最后一个数字后没有短横线-
时间: 2024-02-12 08:09:37 浏览: 127
好的,以下是C++递归函数的代码实现:
```c++
#include <iostream>
using namespace std;
void printDigits(int n) {
if (n < 10) {
cout << n;
return;
}
printDigits(n / 10);
cout << "-" << n % 10;
}
int main() {
int n;
cout << "请输入一个正整数:";
cin >> n;
cout << "每一位数字按从高位到低位的顺序依次输出为:";
printDigits(n);
return 0;
}
```
通过递归函数 `printDigits` 实现了将一个正整数的每一位取出来并按从高位到低位的顺序依次输出的功能。当输入的正整数小于 10 时,直接输出该数字;否则使用递归的方式依次输出其除个位数外的数字,并在每个数字后添加短横线。最后输出个位数即可。
相关问题
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。
C++编写一个递归函数,将一个正整数的每一位取出来并按从高位到低位的顺序依次输出,数字之间加上短横线。
以下是实现该功能的 C++ 递归函数代码:
```cpp
void printDigits(int num) {
if (num < 10) {
cout << num << "-";
} else {
printDigits(num / 10);
cout << num % 10 << "-";
}
}
```
这个函数首先判断传入的数字是否小于 10,如果是,则直接输出该数字并加上短横线,递归结束;否则,先递归调用自身处理 num 除以 10 的结果,再输出 num 对 10 取余的结果并加上短横线。这样就能够从高位到低位依次输出每一位数字了。
阅读全文