Description
蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。
Input
本题有多组数据,每组数据由一个正整数N组成。(N不大于100)
Output
对于每一组数据,输出一个N行的蛇形矩阵。两组输出之间不要额外的空行。矩阵三角中同一行的数字用一个空格分开。行尾不要多余的空格。
Sample Input
5
Sample Output
1 3 6 10 152 5 9 144 8 137 1211
<pre name="code" class="cpp">#include <iostream>
#include <string>
using namespace std;
int main()
{
int n;
while (cin >> n)
{
int num[100][100] = {0}; //开满一个完整矩阵
int N = 1;
for (int sum = 0; sum < n; ++sum)
{
for (int i = n - 1; i >= 0; --i) //行递减
{
for (int j = 0; j < n; ++j) //列递增
{
if (i + j == sum)
num[i][j] = N++;
}
}
} //这个三重循环不好,但是不知道有没有别的方法可以做
int temp = n; //temp作为n的替身
for (int i = 0; i < n; ++i)
{
int sign = 0;
for (int j = 0; j < temp; ++j)
{
if (sign++) //输出格式控制
cout << " ";
cout << num[i][j];
}
--temp;
cout << endl;
}
}
return 0;
}