蛇形矩阵

来源:互联网 发布:淘宝大学一飞老师 编辑:程序博客网 时间:2024/05/01 07:51

题目说明:

蛇形矩阵是由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行的蛇形矩阵

样例输入: 4

样例输出: 1 3 6 10 2 5 9 4 8 7

注意点: 换行输出胡;每行末尾不能有空格

PS: 貌似题目定义的接口对C++没什么作用。。。

代码:

#include <iostream>#define MAX 100using namespace std;int main(){int num,i,j;cin >> num;if (num>MAX)return -1;int ** shuzu = new int*[num];for (i = 0; i < num; i++)shuzu[i] = new int[num];for (i = 0; i < num; i++)for (j = 0; j < num - i; j++)shuzu[i][j] = 0;j = 0;for (i = 0; i < num; i++)if (i == 0) shuzu[i][j] = 1;else shuzu[i][j] = shuzu[i - 1][j] + i;for (i = 0; i < num; i++)for (j = 1; j < num - i; j++)shuzu[i][j] = shuzu[i][j - 1] + j+1+i;for (i = 0; i < num; i++){for (j = 0; j < num - i; j++){cout << shuzu[i][j];if (j != num - i-1)cout << ' ';}cout << endl;}//cin.get();//cin.get();return 0;}

得分运行时间内存复杂度最大嵌套深度96(100)15ms2072KB134注意:

上述代码用到了动态定义二维数组,除非对指针理解深刻,否则很容易失误。

看到别人的代码,有一个比较好的方法如下:

#define MAX 100... ...int shuzu[MAX][MAX];int n;cin>>n;for(i=0;i<n;i++)... ...

0 0