[2016-04-17][Gym][100947][K][Jpeg]

  • 时间: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按照斜边输出点即可
  1. #include<iostream>
  2. #include<cstdio>
  3. using namespace std;
  4. const int maxn = 110;
  5. int a[maxn][maxn];
  6. int main(){
  7. int t,n;
  8. scanf("%d",&t);
  9. while(t--){
  10. scanf("%d",&n);
  11. for(int i=0;i<n;i++){
  12. for(int j=0;j<n;j++){
  13. scanf("%d",&a[i][j]);
  14. }
  15. }
  16. int sum=0;
  17. for(int i=0;i<n;i++){
  18. if(i&1)
  19. for(int j=0;j<=i;j++){
  20. cout<<a[j][i-j];
  21. cout<<(++sum%n ? " ":"\n");
  22. }
  23. else for(int j=i;j>=0;j--){
  24. cout<<a[j][i-j];
  25. cout<<(++sum%n ? " ":"\n");
  26. }
  27. }
  28. for(int i=n-1;i>0;i--){
  29. if(i&1)
  30. for(int j=i-1;j>=0;j--){
  31. cout<<a[n-i+j][n-j-1];
  32. cout<<(++sum%n ? " ":"\n");
  33. }
  34. else for(int j=0;j<i;j++){
  35. cout<<a[n-i+j][n-j-1];
  36. cout<<(++sum%n ? " ":"\n");
  37. }
  38. }
  39. }
  40. }


来自为知笔记(Wiz)


posted on 2016-04-20 14:05  红洋  阅读(169)  评论(0)    收藏  举报

导航