7 solutions
-
0
/* 观察每个对角线的起点和每次填写的次数, 根据当前需要填写的行数的奇偶去判断是从左下到右上,还是右上到左下 */ #include<bits/stdc++.h> using namespace std; const int N=20; int g[N][N]; int main() { int n; cin>>n; int cnt=1; for(int i=1;i<=n;i++) //填写第i列的起点 { if(i%2==0) //偶数行左上到右下 { for(int x=1,y=i;x<=i;x++,y--) //从(1,i) { g[x][y]=cnt++; } } else //奇数行左下到右上 { for(int x=i,y=1;y<=i;x--,y++) //从(i,1) { g[x][y]=cnt++; } } } for(int i=1;i<=n;i++) { for(int j=1;j<=n-i+1;j++) { cout<<g[i][j]<<" "; } cout<<endl; } return 0; }
Information
- ID
- 82
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 4
- Tags
- (None)
- # Submissions
- 81
- Accepted
- 29
- Uploaded By