用c++递归函数将123输出为1-2-3的代码
时间: 2023-06-24 10:05:41 浏览: 64
以下是用 C++ 编写的递归函数将 123 输出为 1-2-3 的代码:
```cpp
#include <iostream>
using namespace std;
void print(int n) {
if (n == 1) {
cout << n;
} else {
print(n - 1);
cout << "-" << n;
}
}
int main() {
print(3); // 输出 1-2-3
return 0;
}
```
首先定义一个递归函数 `print`,参数为一个整数 `n`。如果 `n` 等于 1,直接输出 1;否则,先递归调用 `print(n - 1)`,再输出 `"-"` 和 `n`。
在 `main` 函数中,调用 `print(3)` 输出 1-2-3。
相关问题
c代码使用递归函数输出1-100的所有偶数
好的,以下是递归函数输出1~100的所有偶数的 C 代码实现:
```c
#include <stdio.h>
void print_even(int num) {
if (num > 100) { // 递归终止条件
return;
}
if (num % 2 == 0) { // 如果是偶数,输出
printf("%d\n", num);
}
print_even(num + 1); // 递归调用,继续判断下一个数
}
int main() {
print_even(1); // 调用函数开始输出偶数
return 0;
}
```
这个递归函数的思路与前面的 Python 版本类似:先判断当前数字是否大于 100,如果是则结束递归。若不是,则判断当前数字是否为偶数,如果是则输出,否则继续递归调用函数,判断下一个数字。这样就可以输出 1~100 的所有偶数了。
c++代码 编写一个递归函数,将一个正整数的每一位取出来并按从高位到低位的顺序依次输出,数字之间加上短横线。 例如:正整数为123,则输出1-2-3。 提示:考虑用递归函数实现该任务。
以下是C++代码实现:
```c++
#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 = 123;
printDigits(n);
return 0;
}
```
运行结果为:`1-2-3-`
该递归函数的基本思路是:如果给定的数是个位数,直接输出并返回;否则,将其除以10得到高位数字,递归输出高位数字,然后输出当前位的数字。