使用C++利用(if)函数调用和递归编写程序,输入一个正整数,系统会根据输入的正整数的值输出相应句数的“今天是个好日子”
时间: 2024-03-20 22:42:00 浏览: 20
好的,我会根据你的要求进行编写。
以下是 C++ 代码:
```
#include <iostream>
using namespace std;
void printSentence(int n) {
if (n <= 0) {
return;
}
cout << "今天是个好日子" << endl;
printSentence(n - 1);
}
int main() {
int n;
cout << "请输入一个正整数:";
cin >> n;
printSentence(n);
return 0;
}
```
以上代码中,我们定义了一个 `printSentence` 函数,该函数使用递归的方式来输出“今天是个好日子”这句话。当输入的正整数为 0 或负数时,函数会直接返回,否则会先输出一次该句话,然后再递归调用自身,传入 n-1 作为参数,继续输出句子,直到 n 为 0 或负数时结束递归。
在 `main` 函数中,我们首先读入一个正整数,然后调用 `printSentence` 函数,将该正整数作为参数传入,从而实现输出相应句数的“今天是个好日子”。
相关问题
使用c++利用函数的递归调用,输入一个正整数,系统会计算出这个正整数的阶乘。
好的,这个问题很简单,可以使用递归来实现阶乘的计算。下面是C++代码示例:
```c++
#include <iostream>
using namespace std;
int factorial(int n)
{
if (n == 1)
return 1;
else
return n * factorial(n-1);
}
int main()
{
int n;
cout << "Enter a positive integer: ";
cin >> n;
cout << "Factorial of " << n << " is " << factorial(n);
return 0;
}
```
这段代码中,我们定义了一个 `factorial` 函数,它接收一个正整数参数 `n`,并使用递归调用自身来计算 `n` 的阶乘。如果 `n` 等于 1,递归终止并返回 1;否则,函数返回 `n * factorial(n-1)`。
在 `main` 函数中,我们首先读入一个正整数 `n`,然后调用 `factorial` 函数计算 `n` 的阶乘,并输出结果。
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。