DHU OJ 二维数组 杨辉三角

思路及代码

//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博客

3️⃣ C++程序 打印2D数组|极客笔记

收获: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 循环

菜菜,不是教程,做题和学习记录

  • 7
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值