c++ - 递归函数的帕斯卡三角形
问题描述
int Pascal_Tri(int row , int col)
{
if (row==col || col==0)
return 1 ;
else
{
return Pascal_Tri(row-1,col)+Pascal_Tri(row-1,col-1);
}
}
这段代码有问题,我找不到。当我运行它时,程序停止工作并且没有结果消失
解决方案
C++11
#include <iostream>
#include <vector>
std::vector<int> pascal(int height, std::vector<int> curr)
{
for(int i=0; i<curr.size(); i++)
std::cout<<curr[i]<<" ";
std::cout<<std::endl;
if(height<=0)
return curr;
std::vector<int> newCurr(curr.size()+1,1);
for(int i=0; i+1 < curr.size(); i++)
newCurr[i+1] = curr[i] + curr[i+1];
return pascal(height-1,newCurr);
}
int main()
{
int row, col;
std::cin>>row>>col;
std::vector<int> rowPascal = pascal(row,std::vector<int>{1});
std::cout<< rowPascal[col];
}
用驱动功能来测试。我知道这不是很有效,但它应该这样做!
这基本上将为您提供帕斯卡三角形中特定行(从顶部开始)和特定列(从左侧)的数字。(均为零索引)
推荐阅读
- azure-devops - 在 Azure Devops Server (TFS) 中选择什么工作项
- javascript - 父元素和子元素的单独 onClick 事件
- android - 安卓条码扫描模块
- java - Keycloak java更改临时密码
- python - 如何使用 argparse Python 在 SQL 查询中传递日期范围参数
- c# - UdpClient 构造函数抛出 SocketException NotInitialized
- python - 如何将此语法错误转换为正确的 if else
- php - xero API:努力添加基本发票
- reactjs - 如何在反应材料-ui DataGrid中格式化单元格
- c# - 如何在子元素中绑定属性?