c++ - 为什么我的 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;
}
谁能帮我解决这个问题并让它成为一个递归项目?
解决方案
if(index > n) //Base Case
{
return 0;
}
这似乎不正确。您以 开始索引n
,并且索引将始终递减。index > n
永远不会到达。
推荐阅读
- angular - Angular 10 HttpClient 未设置正确的 Content-Type 标头
- c++ - libcurl解析响应标头并存储为键值对c ++
- python - PyQT5 空白窗口
- reactjs - 用酶和玩笑测试 Formik 形式
- python-3.x - 如何在列表框中创建列?
- c# - 如何在 AvaloniaUi 中创建类似 ListView 的表?
- vue.js - 对预检请求的响应未通过访问控制 No 'Access-Control-Allow-Origin'
- sql-server - Windows 的 dockers - 缺少 SQL Server 代理
- regex - 使用正则表达式的字符串之间的 Grep 值
- node.js - 如何在没有注册页面的情况下在 mongodb 中使用 bcrypt 哈希密码?