Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用递归打印修改后的星号三角形图案? 我使用C++,我被要求使用递归来打印一个具有某种模式的三角形:_C++_Recursion - Fatal编程技术网

如何使用递归打印修改后的星号三角形图案? 我使用C++,我被要求使用递归来打印一个具有某种模式的三角形:

如何使用递归打印修改后的星号三角形图案? 我使用C++,我被要求使用递归来打印一个具有某种模式的三角形:,c++,recursion,C++,Recursion,例如,如果用户输入整数4,控制台应输出以下内容: 编辑:如果用户输入整数3,控制台应输出以下内容: 这是我掌握的关于这个图案的所有信息 因此,我认识到每条线上的恒星模式是: 1,2,1,3,1,2,1,4最大值1,2,1,3,1,2,1 但我使用递归得到的最远结果是打印大小为n的三角形: void starprint(int n) { for (int i = 1; i <= n; ++i) { if (i == 1) std::cout <<

例如,如果用户输入整数4,控制台应输出以下内容:

编辑:如果用户输入整数3,控制台应输出以下内容: 这是我掌握的关于这个图案的所有信息

因此,我认识到每条线上的恒星模式是: 1,2,1,3,1,2,1,4最大值1,2,1,3,1,2,1

但我使用递归得到的最远结果是打印大小为n的三角形:

void starprint(int n) {
    for (int i = 1; i <= n; ++i)
    {
        if (i == 1) std::cout << "*" << std::endl;
        else
        {
            for (int j = 1; j <= i; j++)
            {
                std::cout << "*";
            }
            std::cout << std::endl;
        }
        if (i == n) 
            starprint(n - 1);
    }
}
所以现在我被卡住了,因为模式有点奇怪,因为我对这些事情的本能是使用迭代而不是递归,我对递归有点不在行

任何关于如何实现这一点的建议都会非常有用。谢谢大家

对于这个序列,您有一个优雅的递归解决方案:

#include <iostream>
using namespace std;    

void printstar(int n){
    if(n == 1) {cout<<"1 "; return;}
    printstar(n - 1);
    cout<<n<<" ";
    printstar(n - 1);
}

int main() {
  printstar(4);
}

//output: 1 2 1 3 1 2 1 4 1 2 1 3 1 2 1

模式不清楚。例如,对于n=1、n=2、n=3和n=5,答案是什么?此处的所有问题必须以纯文本形式包含问题本身的所有相关信息。这个问题必须被删除,奇怪的链接替换为相关信息。我想我理解这个模式,但如果你愿意,请随意添加示例。@Daniel,我添加了另一个模式示例,这两个是我在这项任务中仅有的示例。最大的值对双方都是一面镜子。这样想会更容易。非常感谢!这让我意识到我完全错误地处理了这个问题,现在我明白了。它比我原来的代码优雅多了,谢谢你,丹尼尔!
 1   2  1  3  1 2 1 [4] 1 2 1 3 1 2 1

 1   2  1 [3] 1 2 1

 1  [2] 1

[1]