Em làm bài sinh xâu nhị phân có độ dài n mà ở đó ko có 2 kí tự 1 đứng liền nhau mà chạy ko in ra kết quả. Ai chỉ cho e chỗ sai với ạ
#include <bits/stdc++.h>
using namespace std;
string s;
int n;
void lam(int i)
{
if (i<=n)
{
s[i]='0';
lam(i+1);
s[i]='1';
lam(i+1);
}
else
{
bool d=true;
for (int k=0;k<=n-2;k++) if (s[k]=='1'&&s[k+1]=='1') d=false;
if (d)
{
cout<<s<<' ';
return;
}
}
}
int main()
{
cin>>n;
lam(0);
return 0;
}
quay lui thì nếu bit liền trước là 1 thì lựa chọn duy nhất là 0.
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?