在1函数中打印相反的三角递归c ++

Coc*_*oom 0 c++ recursion

我想知道是否可以使用1函数递归地打印相反的三角形(通过"*").

例如,对于给定的基数n = 4,它应该打印

*****
***
**
*
*
**
***
****
Run Code Online (Sandbox Code Playgroud)

我是初学者,但我知道如何编写1个递归函数

*****
***
**
*
Run Code Online (Sandbox Code Playgroud)

和一个

*
**
***
****
Run Code Online (Sandbox Code Playgroud)

但是有可能在1个函数中编写2个相对的三角形吗?可能是一个愚蠢的问题,它的答案是否定的 - 但我现在已经尝试了一个小时而且我无法做到.如果您能告诉我是否可能,我将非常感激.

编辑:我的代码为2个不同的功能:

#include <iostream>
using namespace std;

void printOppositeriangle(int n);
void printOppositeriangle2(int n);

void main()
{
    int n = 5;
    printOppositeriangle(n);
    printOppositeriangle2(n);

}
void printOppositeriangle(int n)
{
    if (n == 0)
        return;

    else
    {
        for (int i = 0; i < n; i++)
            cout << "*";
        cout << endl;
        printOppositeriangle(n - 1);
    }
}
void printOppositeriangle2(int n)
{
    if (n == 0)
        return;

    else
        printOppositeriangle2(n - 1);
    for (int i = 0; i < n; i++)
        cout << "*";
    cout << endl;
}
Run Code Online (Sandbox Code Playgroud)

joh*_*ohn 5

很简单,在打印出一行星号之前和之后,在中间进行递归调用.

void print(int n)
{
    for (int i = 0; i < n; ++i)
        cout << '*';
    cout << '\n';
    if (n > 1)
        print(n - 1);
    for (int i = 0; i < n; ++i)
        cout << '*';
    cout << '\n';
}
Run Code Online (Sandbox Code Playgroud)

未经测试的代码.