思路及代码
//input T,int 1<= <=20
//input T 组 n
#include<iostream>
using namespace std;
int main(){
int T;
cin >> T;
int n;
//create n = 20 杨辉三角
int **p = new int*[20];
for (int i = 0; i <= 19; i++){
p[i] = new int[i+1];
}
p[0][0] = 1;
p[1][0] = 1;
p[1][1] = 1;
for (int row = 2; row <= 19; row++){
p[row][0] = 1;
for (int col = 1; col <= row-1; col++){
p[row][col] = p[row-1][col-1] + p[row-1][col];
}
p[row][row] = 1;
}
//output 对应杨辉三角
while(--T >= 0){
cin >> n;
for (int row = 0; row <= n-1; row++){
for (int col = 0; col <= row-1; col++){
cout << p[row][col] << ' ';
}
cout << p[row][row] << endl;
}
cout << endl;
}
return 0;
}
参考: 1️⃣C++建立动态二维数组_c++动态二维数组定义-CSDN博客
2️⃣ C++ new申请二维动态数组详解_c动态创建二维数组new-CSDN博客
收获:1️⃣ 建立动态二维数组
//申请空间
int **p = new int*[5]; //分配一个大小为5的指针数组,将其首地址保存在p中
for (int i=0; i <= 4; i++){ //为指针数组的每个元素分配一个大小为3的数组
b[i] = new int[i];
}
//至此构造了一个下图空间的动态二维数组
*
**
***
****
*****
动态二维数字赋值
//使用空间
for(int i = 0; i <= 4; i++){
for(int j = 0; j <= i-1; j++){
a[i][j] = ...//赋值略
}
}
按行输出二维数组 两次 for 循环
菜菜,不是教程,做题和学习记录
标签:OJ,int,C++,二维,数组,杨辉三角,new,DHU,动态 From: https://blog.csdn.net/jtymyxmz/article/details/141144966