时间:2016-04-17 18:18:53 星期日
题目编号:[2016-04-17][Gym][100947][K][Jpeg]
题目大意:给定n行n列的数字,按图中顺序输出
![9f8552906320b7d467afb9d58f31010a.jpg]()
分析:
- 上左上到左下的斜边编号一次是0 1 2 3 4 5 6 7 6 5 4 3 2 1 0按照斜边输出点即可
#include<iostream>#include<cstdio>using namespace std;const int maxn = 110;int a[maxn][maxn];int main(){ int t,n; scanf("%d",&t); while(t--){ scanf("%d",&n); for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ scanf("%d",&a[i][j]); } } int sum=0; for(int i=0;i<n;i++){ if(i&1) for(int j=0;j<=i;j++){ cout<<a[j][i-j]; cout<<(++sum%n ? " ":"\n"); } else for(int j=i;j>=0;j--){ cout<<a[j][i-j]; cout<<(++sum%n ? " ":"\n"); } } for(int i=n-1;i>0;i--){ if(i&1) for(int j=i-1;j>=0;j--){ cout<<a[n-i+j][n-j-1]; cout<<(++sum%n ? " ":"\n"); } else for(int j=0;j<i;j++){ cout<<a[n-i+j][n-j-1]; cout<<(++sum%n ? " ":"\n"); } } }}