提交时间:2019-11-16 18:28:08

运行 ID: 2258

#include<bits/stdc++.h> using namespace std; int n,st,sp; char a[10000]; void print(){ int i; printf("step%2d:",st); for(i=1;i<=2*n+2;i++)cout<<a[i]; cout<<endl; st++; } void init(int n){ int i; st=0; sp=2*n+1; for(i=1;i<=n;i++)a[i]='o'; for(i=n+1;i<=2*n;i++)a[i]='*'; a[2*n+1]='-';a[2*n+2]='-'; print(); } void move(int k){ int j; for(j=0;j<=1;j++){ a[sp+j]=a[k+j]; a[k+j]='-'; } sp=k; print(); } void mv(int n){ int i,k; if(n==4){ move(4);move(8);move(2);move(7);move(1); }else{ move(n);move(2*n-1);mv(n-1); } } int main(){ cin>>n; init(n); mv(n); }