下边是我的代码
首先,根据题干文字描述来看我这个代码没有任何问题,结果也对
只不过是样例里最后几行移动方法和样例不一样。
这种情况下按理说应该是AC吧?结果全给我WA
我不就是多出来两次移动吗?题干通篇都没有写要求用最少步骤呀!而且题干里给的样例也未必是最少步骤吧?我每次都是移动两个到空位置并且最后结果符合要求这应该就可以了吧?
#include<iostream>
using namespace std;
void fun(char *s,int n)
{
s[n]='-';
s[n-1]='-';
s[n*2]='o';
s[n*2+1]='*';
cout<<s<<endl;
if(n<2)
return;
s[n]='*';
s[n-1]='*';
s[n*2-1]='-';
s[n*2-2]='-';
cout<<s<<endl;
fun(s,n-1);
}
int main()
{
int n,i;
cin>>n;
char s[2*n+3];
for(i=0;i<n;i++)
s[i]='o';
for(;i<2*n;i++)
s[i]='*';
s[i++]='-';
s[i++]='-';
s[i]=0;
cout<<s<<endl;
fun(s,n);
return 0;
}