CCF真题Z型输出

 

 1 #include<stdio.h>
 2 #include<iostream>
 3 #include<string.h>
 4 #include<algorithm>
 5 using namespace std;
 6 int main()
 7 {
 8     int n;
 9     int a[505][105];
10     while(cin>>n){
11             memset(a,0,sizeof(a));
12     for(int i=0;i<n;i++){
13         for(int j=0;j<n;j++){
14             scanf("%d",&a[i][j]);
15         }
16     }
17     int x=0,y=0;
18     cout<<a[0][0]<<" ";
19     for(int i=1;i<n;i++){
20         if(i%2==0){
21             cout<<a[++x][y]<<" ";
22             for(int j=0;j<i;j++){
23                 cout<<a[--x][++y]<<" ";
24             }
25         }
26         else {
27             cout<<a[x][++y]<<" ";
28             for(int j=0;j<i;j++){
29                 cout<<a[++x][--y]<<" ";
30             }
31         }
32     }
33 
34 
35     for(int i=n-2;i>=1;i--){
36         if(i%2!=0){
37           cout<<a[++x][y]<<" ";
38           for(int j=i;j>0;j--){
39             cout<<a[++x][--y]<<" ";
40           }
41         }
42         else {
43             cout<<a[x][++y]<<" ";
44             for(int j=0;j<i;j++){
45                 cout<<a[--x][++y]<<" ";
46             }
47         }
48     }
49 cout<<a[n-1][n-1]<<endl;
50     }
51 }
View Code

对于这道题,刚开始读题的的时候看得眼花缭乱的,其实静下心来仔细观察图就会发现其实很简单的啦,要是看图看不明白就用纸画下方格来,自己模拟怎么走法就好啦,一定用注意发现其中的规律

你若盛开,清风自来...
原文地址:https://www.cnblogs.com/shangjindexiaoqingnian/p/5837382.html