首页 > 解决方案 > 为什么我的 C++ 递归程序永远存在

问题描述

我正在编写一个倒金字塔控制台应用程序,当你输入一个数字时,例如 3,它会输出楼梯的数量,

*****
 ***
  *

它可以工作,一切都很好,但是当它输出金字塔时。它会一直发送垃圾邮件空间,直到程序崩溃。这是源代码: 注意:这是一个递归项目。

#include <iostream>
using namespace std;

int Pyramid(int n, int index)
{
    if(index > n)  //Base Case
    {
        return 0;
    }
    for(int i=index+1; i<=n; i++)
    {
        cout<<" ";
    }
    for(int j=1; j<index*2; j++)
    {
        cout<<"*";
    }
    cout<<endl;
    return Pyramid(n, index-1);
}

int main()
{
    int n;
    cin>>n;
    Pyramid(n, n);
    return 0;
}

谁能帮我解决这个问题并让它成为一个递归项目?

标签: c++recursionstack-overflow

解决方案



    if(index > n)  //Base Case
    {
        return 0;
    }

这似乎不正确。您以 开始索引n,并且索引将始终递减。index > n永远不会到达。


推荐阅读