题目描述
蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形
输入
本题有多组数据,每组数据由一个正整数N组成。(N不大于100)
输出
对于每一组数据,输出一个N行的蛇形矩阵。两组输出之间不要额外的空行。矩阵三角中同一行的数字用一个空格分开。行尾不要多余的空格。
样例输入
5
样例输出
1 3 6 10 152 5 9 144 8 137 1211
c++解法如下: #include <iostream> using namespace std; int main() { const int N = 101; int arrary[N][N]; /**存储蛇形矩阵*/ int i,j; int n,num,cnt; for (i=0;i<N;i++) { for (j=0;j<N;j++) arrary[i][j]=0; } arrary[0][0]=1; cin >> n; cnt = n-1; num = n*(n+1)*0.5; for (i=0;i<n;i++) { for (j=0;j<n;j++){ if (i+j==cnt) arrary[i][j]=num--; if (i+j==cnt&&j==0) { cnt--; i=0;j=0; } } } for (i=0;i<n;i++) { for (j=0;i+j<=n-1;j++) { if (i+j<=n-1&&i+j+1>n-1) cout << arrary[i][j] ; else cout << arrary[i][j] << " " ; } cout << "\n" ; } //cout << "Hello world!" << endl; return 0; } |