题目描述
题目说明
蛇形矩阵是由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;
int main()
{
int **p=NULL;
size_t sNum;
while (cin >> sNum)
{
p = new int*[sNum];
for (int i = 0; i < sNum; i++)
{
p[i] = new int[sNum - i];
}
*p[0] = 1;
for (int i = 1; i < sNum; i++)
p[0][i] = p[0][i - 1] + i + 1;
for (int i = 1; i < sNum; i++)
{
*p[i] = *p[i - 1] + i;
int jMax = sNum - i;
for (int j = 1; j < jMax; j++)
{
p[i][j] = p[i][j - 1] + j + 1 + i;
}
}
for (int i = 0; i < sNum; i++)
{
int jMax = sNum - i;
for (int j = 0; j < jMax; j++)
{
cout << p[i][j] << " ";
}
cout << endl;
}
for (int i = 0; i < sNum; i++)
{
if (p[i] != NULL)
{
delete[] p[i];
p[i] = NULL;
}
}
delete p;
p = NULL;
}
return 0;
}