讨论 / AC C++题解//标准递归题
huayichen 2020-06-17 02:11:58
点我顶贴 收藏 删除
#include<bits/stdc++.h>

using namespace std;

string st;

int n;

void shu(string st)

{

int l;

l=st.size();//求字符串长度

if (l<1) return;//如果越界那么return

shu(st.substr(0,l/2));//递归前半

shu(st.substr(l/2,l/2));//同理递归后半

if (st.find('0')==-1) cout<<'I'; else//若没0,cout L

if (st.find('1')==-1) cout<<'B'; else cout<<'F';//如果直接判断会有错,从反面考虑

}

int main()

{

cin>>n;

cin>>st;

shu(st);

cout<<endl;//不加也没事

return 0;

}

#1 hs43lyc@2022-01-02 19:25:39
回复 删除
#include<bits/stdc++.h>

using namespace std;

string st;

int n;

void shu(string st)

{

int l;

l=st.size();//求字符串长度

if (l<1) return;//如果越界那么return

shu(st.substr(0,l/2));//递归前半

shu(st.substr(l/2,l/2));//同理递归后半

if (st.find('0')==-1) cout<<'I'; else//若没0,cout L

if (st.find('1')==-1) cout<<'B'; else cout<<'F';//如果直接判断会有错,从反面考虑

}

int main()

{

cin>>n;

cin>>st;

shu(st);

cout<<endl;//不加也没事

return 0;

}

查看更多回复
提交回复