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; }
时间: 2024-10-13 22:46:05