3 条题解
-
0
Guest
-
1
#include<bits/stdc++.h> using namespace std; int a[101][101]; queue<int> q; void d() { int n=q.front(); q.pop(); q.push(n); } int main() { int m; cin>>m; for(int i=1; i<=m; i++) { int x; cin>>x; q.push(x); cout<<x<<" "; } cout<<endl; for(int i=1; i<=m; i++) { d(); for(int j=1; j<=m; j++) { a[i][j]=q.front(); d(); } } for(int i=1; i<m; i++) { for(int j=1; j<=m; j++) { cout<<a[i][j]<<" "; } cout<<endl; } return 0; }
-
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; }
-
0
#include<bits/stdc++.h> using namespace std; int a[1000000]; int zhuan(int a[10000],int k,int n) {
} int main() { int n,j; cin>>n; for(int i=0;i<n;i++) cin>>a[i]; for(int i=0;i<n;i++) cout<<a[i]<<" "; cout<<endl; for(int k=1;k<=n-1;k++) { j=a[0]; for(int i=1;i<n;i++) a[i-1]=a[i]; a[n-1]=j; for(int i=0;i<n;i++) { cout<<a[i]<<" "; } cout<<endl; } return 0; }
- 1
信息
- ID
- 128
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 6
- 标签
- 递交数
- 23
- 已通过
- 11
- 上传者