题目链接

​https://www.nowcoder.com/practice/649b210ef44446e3b1cd1be6fa4cab5e?tpId=37&tqId=21258&tPage=2&rp=&ru=/ta/huawei&qru=/ta/huawei/question-ranking​

题目描述

题目说明

蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。

样例输入

5

样例输出

1 3 6 10 15

2 5 9 14

4 8 13

7 12

11

接口说明

原型

void GetResult(int Num, char * pResult);

输入参数:

        int Num:输入的正整数N

输出参数:

        int * pResult:指向存放蛇形矩阵的字符串指针

        指针指向的内存区域保证有效

返回值:

        void

输入描述:

输入正整数N(N不大于100)

输出描述:

输出一个N行的蛇形矩阵。

示例1

输入

复制

4

输出

复制

1 3 6 10
2 5 9
4 8
7

题解:

#include <iostream>
using namespace std;
const int MAX = 100;
int main(){
int n;
int buf[MAX][MAX];
while (cin >> n){
int col_add = 1;
buf[0][0] = 1;
for (int i = 0; i < n; i++){
int row_add = i + 2;
for (int j = 0; j < n - i; j++){
if (j == 0 && i > 0){
buf[i][j] = col_add + buf[i - 1][j];
col_add++;
}
else if(j > 0){
buf[i][j] = buf[i][j - 1] + row_add;
row_add++;
}
cout << buf[i][j] << " ";
}
cout << endl;
}
}
return 0;
}