思路

小常识:string有加法,给定一个新的字符串和旧的字符串,旧字符串每一位替换加到新字符串,递归n次答案就出来了。

代码

#include<bits/stdc++.h>
using namespace std;

int n;

void fc(string str,int cnt){
    if(cnt==n){
        cout<<str<<endl;
        return;
    }
    string tmp="";
    for(int i=0;i<str.length();i++){
        if(str[i]=='0') tmp=tmp+"1";
        if(str[i]=='1') tmp=tmp+"01"; 
    }
    fc(tmp,cnt+1);
}

int main(){
    scanf("%d",&n);
    string s="0";
    fc(s,0);
    return 0;
}