题目 1097: 蛇行矩阵 --c语言网

 类型:数组

思路:逐行存储数据,每行的增量是一个递增数列。

AC代码:

 1 #include<iostream>
 2 #include<cstring>
 3 #include<algorithm>
 4 using namespace std;
 5 const int MAX_N=110;
 6 int num[MAX_N][MAX_N];
 7 int main()
 8 {    
 9     int n;
10        while(cin>>n)
11     {
12         int r=0;//行 增量 
13         int c=1;//列 增量 
14         int tmp=0;
15         for(int i=0;i<=4;i++)//逐行存储数据 
16         {
17             r=i+2; //逐行增加 
18             for(int j=0;j<n-i;j++)
19             {
20                 if(i==0&&j==0)
21                 {
22                     num[i][j]=1;
23                 }    
24                 else if(i>0&&j==0)
25                 {
26                     num[i][j]=num[i-1][j]+c;
27                     c+=1;
28                 }
29                 else
30                 {
31                     num[i][j]=num[i][j-1]+r;
32                     r+=1;
33                 }                            
34             }
35         }
36         for(int i=0;i<=4;i++)
37         {
38             for(int j=0;j<n-i;j++)
39             {
40                 cout<<num[i][j];
41                 if(j!=n-i-1)    cout<<" ";
42             }
43             cout<<endl;
44         }
45     }
46     return 0;
47 }
View Code

猜你喜欢

转载自www.cnblogs.com/lvyi-19325/p/13405937.html