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