3 条题解
-
0
Guest
-
1
本题关键为注意到二维数组第i行第j列为所输入原数组的第i+j-1项(i+j-1 <= m时),
若i+j-1>m是发现其有周期为m,故将i+j-1不断做**-m的操作直到其小于等于m**;
代码如下:
#include<bits/stdc++.h> using namespace std; int a[10010],p[100][100]; int main() { int m,f; cin>>m; for(int i=1;i<=m;i++) { cin>>a[i]; } for(int i=1;i<=m;i++) { for(int j=1;j<=m;j++) { f=i+j-1; if(f<=m) { p[i][j]=a[f]; } else { while(f>m) { f-=m; } if(f<=m) { p[i][j]=a[f]; } } } } for(int i=1;i<=m;i++) { for(int j=1;j<=m;j++) { cout<<p[i][j]<<' '; } cout<<'\n'; } return 0; }
信息
- ID
- 128
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 6
- 标签
- 递交数
- 23
- 已通过
- 11
- 上传者