3 条题解

  • 0
    @ 2023-10-21 14:31:22

    #include #include #include #include #include #include #include using namespace std; int n,st,sp; char c[101]; void print(){ int i; cout<<"step"<<st<<':'; for(int i=1;i<=2n+2;i++) cout<<c[i]; cout<<endl; st++; } void init(int n){ int i; st=0; sp=2n+1; for(int i=1;i<=n;i++)c[i]='o'; for(int i=n+1;i<=2n;i++)c[i]=''; c[2n+1]='-'; c[2n+2]='-'; print(); } void move(int k){ int j; for(j=0;j<=1;j++){ c[sp+j]=c[k+j]; c[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); }

    • 0
      @ 2023-2-28 19:26:30
      #include<bits/stdc++.h>
      using namespace std;
      int n,st,sp;
      char c[101];
      void print(){
      	int i;
      	cout<<"step"<<st<<':';
      	for(int i=1;i<=2*n+2;i++)
      	cout<<c[i];
      	cout<<endl;
      	st++;
      }
      void init(int n){
      	int i;
      	st=0;
      	sp=2*n+1;
      	for(int i=1;i<=n;i++)c[i]='o';
      	for(int i=n+1;i<=2*n;i++)c[i]='*';
      	c[2*n+1]='-';
      	c[2*n+2]='-';
      	print();
      }
      void move(int k){
      	int j;
      	for(j=0;j<=1;j++){
      		c[sp+j]=c[k+j];
      		c[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);
      }//ok就他了
      
      • 0
        @ 2022-10-22 11:55:38
        using namespace std;
        int n,st,sp;
        char c[101];
        void print(){
        	int i;
        	cout<<"step"<<st<<':';
        	for(int i=1;i<=2*n+2;i++)
        	cout<<c[i];
        	cout<<endl;
        	st++;
        }
        void init(int n){
        	int i;
        	st=0;
        	sp=2*n+1;
        	for(int i=1;i<=n;i++)c[i]='o';
        	for(int i=n+1;i<=2*n;i++)c[i]='*';
        	c[2*n+1]='-';
        	c[2*n+2]='-';
        	print();
        }
        void move(int k){
        	int j;
        	for(j=0;j<=1;j++){
        		c[sp+j]=c[k+j];
        		c[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);
        }
        
        • 1

        信息

        ID
        237
        时间
        1000ms
        内存
        16MiB
        难度
        7
        标签
        递交数
        104
        已通过
        21
        上传者