NO IMAGE

Link:http://lx.lanqiao.org/problem.page?gpid=T366

 演算法訓練 s01串  
時間限制:1.0s   記憶體限制:256.0MB

問題描述
  s01串初始為”0″
  按以下方式變換
  0變1,1變01
輸入格式
  1個整數(0~19)
輸出格式
  n次變換後s01串
樣例輸入
3
樣例輸出
101
資料規模和約定
  0~19
 

AC code:

#include<iostream>
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<algorithm> 
using namespace std;
int n;
char s[1000010];
void dfs(char s[],int len,int cnt)
{
if(cnt==n)
{
for(int i=0;i<len;i  )
{
printf("%c",s[i]);
}
puts("");
return;
}
for(int i=0;i<len;i  )
{
if(s[i]=='0')
s[i]='1';
else
{
s[i]='0';
for(int j=len;j>i;j--)
{
s[j]=s[j-1];
}
s[i 1]='1';
len  ;
i  ;//跳過當前插入的這一位 
}
}
dfs(s,len,cnt 1);
}
int main()
{
while(scanf("%d",&n)!=EOF)
{
s[0]='0';
dfs(s,1,0);
}
return 0;
}