网站免费备案,江西省赣州市天气预报15天,网站优化网络公司,网站规划与建设进度目录 题目
解题思路
代码实现
获取数字
打印函数
主函数
全部代码
运行结果 题目
给定一个非负整数numRows #xff0c;生成「杨辉三角」的前numRows行。 在「杨辉三角」中#xff0c;每个数是它左上方和右上方的数的和。
解题思路
第k列的第i个数字的值第k-1列的(…目录 题目
解题思路
代码实现
获取数字
打印函数
主函数
全部代码
运行结果 题目
给定一个非负整数numRows 生成「杨辉三角」的前numRows行。 在「杨辉三角」中每个数是它左上方和右上方的数的和。
解题思路
第k列的第i个数字的值第k-1列的(i-1)和i的和
由于数组是动态变化的没有固定大小
运用到容器(vector)
u1s1
python会比c好打
代码实现
获取数字
获取数并且把它存储到容器中
void GetResult(int a)
{vector vectorint sums;int b[1] { 1 };int c[2] { 1,1 };int d[3] { 1,2,1 };vector int a_1(b,b1);vector int a_2(c,c2);vector int a_3(d,d3);sums.push_back(a_1);sums.push_back(a_2);sums.push_back(a_3);for (int i 3; i a - 1; i){vector int sum ;for (int j 0; j i; j){if (j 0 or ji){sum.push_back(1);continue;}int sum_1 0;sum_1 sums[i - 1][j-1] sums[i - 1][j];sum.push_back(sum_1);}sums.push_back(sum);}printResult(sums);
}
这里是容器里面又装载了一个容器
实现创建一个可以动态变化大小的二维数组
第k列的第i个数字的值第k-1列的(i-1)和i的和
所以可以利用上一行的结果来计算数字
并且第123行要单独考虑
打印函数
不得不说要按要求打印还要自己写一个函数
因为c不可以直接打印整个数组
所以要新建一个函数
void printResult(vector vectorint sums)
{cout [;for(int i0;isums.size()-1;i){if (i ! 0)cout ,;cout [;for (int j 0; j sums[i].size()-1; j){if (i ! 0)cout ,;cout sums[i][j] ;}cout ];}cout ];
}
主函数
主函数为
int main()
{int a;cin a;if (a 1)cout [1] endl;else if (a 2)cout [[1],[1,1]] endl;else if (a 3)cout [[1],[1,1][1,2,1]] endl;else if (a 0)exit(0);elseGetResult(a);
}
全部代码
#include iostream
#include vector
using namespace std;
void printResult(vector vectorint sums)
{cout [;for(int i0;isums.size()-1;i){if (i ! 0)cout ,;cout [;for (int j 0; j sums[i].size()-1; j){if (i ! 0)cout ,;cout sums[i][j] ;}cout ];}cout ];
}
void GetResult(int a)
{vector vectorint sums;int b[1] { 1 };int c[2] { 1,1 };int d[3] { 1,2,1 };vector int a_1(b,b1);vector int a_2(c,c2);vector int a_3(d,d3);sums.push_back(a_1);sums.push_back(a_2);sums.push_back(a_3);for (int i 3; i a - 1; i){vector int sum ;for (int j 0; j i; j){if (j 0 or ji){sum.push_back(1);continue;}int sum_1 0;sum_1 sums[i - 1][j-1] sums[i - 1][j];sum.push_back(sum_1);}sums.push_back(sum);}printResult(sums);
}
int main()
{int a;cin a;if (a 1)cout [1] endl;else if (a 2)cout [[1],[1,1]] endl;else if (a 3)cout [[1],[1,1][1,2,1]] endl;else if (a 0)exit(0);elseGetResult(a);
}
运行结果