打印递归 * 模式

Print recursive * pattern

我在打印 * 图案时遇到问题。

它们应该有 2 个函数:printStars() 和 printLine()。 printStars(int n),用于打印一行n颗星;第二个,printLines(int m),打印m对行。

我已经完成了半顶打印,但我无法反转下半的图案。您无法添加更多功能。只有 2 个函数 printStars() 和 printLines() 并且必须是递归的

要求:

* * * *
* * *
* *
* 
*
* *
* * *
* * * *

这是我所做的:

* * * *
* * *
* *
* 

代码:

void printStars(int n){
    if (n < 1) return;
    cout << "*";
    printStars(n-1);
}

void printLines(int m){
    if (m < 1) return;
    printStars(m);
    cout << "\n";
    printLines(m-1);
}

int main(int argc, const char * argv[]) {
    int n;
    cout << "n = ";
    cin >> n;
    printLines(n);
}

题目提示:按照如下模式生成整个图片的方式思考:

这是您需要的零钱:

void printLines(int m){
    if (m < 1) return;
    printStars(m);
    cout << "\n";
    printLines(m-1);

    printStars(m); // just add these two lines to print line again after all internal ones are printed
    cout << "\n";
}