华为-蛇形矩阵
原创
©著作权归作者所有:来自51CTO博客作者ReignsDu的原创作品,请联系作者获取转载授权,否则将追究法律责任
题目链接
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
输入描述:
输出描述:
示例1
输入
复制
输出
复制
题解:
#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;
}