提交时间:2023-10-04 12:10:15

运行 ID: 104963

#include<bits/stdc++.h> using namespace std; int main() { int n,x=0,as=0; cin>>n; as=n*2-3+1; char a[10001]={0}; int p=0,f=2,k=2*n+1; for(int i=1;i<=n;i++) { a[i]='o'; a[i+n]='*'; } a[2*n+1]='-'; a[2*n+2]='-'; n*=2; n+=2; for(int j=1;j<=as;j++) { printf("step%2d:",x); if(j==as) { swap(a[1],a[k-1]); swap(a[2],a[k]); for(int i=1;i<=n;i++) { cout<<a[i]; } return 0; }else if(x==0) { for(int i=1;i<=n;i++) { cout<<a[i]; } x++; cout<<endl; continue; }else if(as-1-x<=3) { if(x%2==0) { swap(a[k],a[p+1]); swap(a[k-1],a[p]); }else { swap(a[p-1],a[k]); swap(a[p-2],a[k-1]); p-=2; k-=1; } }else { if(x%2!=0) { p=(n-f)/2; swap(a[p],a[k]); swap(a[p+1],a[k+1]); }else { swap(a[p],a[k-1]); swap(a[p+1],a[k-2]); k-=2; f+=2; } } for(int i=1;i<=n;i++) { cout<<a[i]; } cout<<endl; x++; } return 0; }