DHU OJ 二维数组 杨辉三角

[复制链接]
发表于 2026-2-9 15:52:24 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×





思绪及代码
  1. //input T,int 1<= <=20
  2. //input T 组 n
  3. #include<iostream>
  4. using namespace std;
  5. int main(){
  6.     int T;
  7.     cin >> T;
  8.     int n;
  9. //create n = 20 杨辉三角
  10.     int **p = new int*[20];
  11.     for (int i = 0; i <= 19; i++){
  12.         p[i] = new int[i+1];
  13.     }
  14.     p[0][0] = 1;
  15.     p[1][0] = 1;
  16.     p[1][1] = 1;
  17.     for (int row = 2; row <= 19; row++){
  18.         p[row][0] = 1;
  19.         for (int col = 1; col <= row-1; col++){
  20.             p[row][col] = p[row-1][col-1] + p[row-1][col];
  21.         }
  22.         p[row][row] = 1;
  23.     }
  24. //output 对应杨辉三角
  25.     while(--T >= 0){
  26.         cin >> n;
  27.         for (int row = 0; row <= n-1; row++){
  28.             for (int col = 0; col <= row-1; col++){
  29.                 cout << p[row][col] << ' ';
  30.             }
  31.             cout << p[row][row] << endl;
  32.         }
  33.         cout << endl;
  34.     }
  35.     return 0;
  36. }
复制代码
参考: 1️⃣C++创建动态二维数组_c++动态二维数组界说-CSDN博客
2️⃣ C++ new申请二维动态数组详解_c动态创建二维数组new-CSDN博客
3️⃣ C++步调 打印2D数组|极客条记
劳绩:1️⃣ 创建动态二维数组
  1. //申请空间
  2. int **p = new int*[5];       //分配一个大小为5的指针数组,将其首地址保存在p中
  3. for (int i=0; i <= 4; i++){  //为指针数组的每个元素分配一个大小为3的数组
  4.      b[i] = new int[i];  
  5. }
  6. //至此构造了一个下图空间的动态二维数组
  7. *
  8. **
  9. ***
  10. ****
  11. *****
复制代码
动态二维数字赋值
  1. //使用空间
  2. for(int i = 0; i <= 4; i++){
  3.         for(int j = 0; j <= i-1; j++){
  4.                 a[i][j] = ...//赋值略
  5.     }
  6. }
复制代码
按行输出二维数组 两次 for 循环
菜菜,不是教程,做题和学习记录

回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表