代码:
#include<iostream> #include<cstring> #include<cstdio> #include<algorithm> long long n,L,R; long long f[1000]; void print(long long x,long long l,long long r){ if(x==0){ printf("0"); return; } if(x==1){ printf("1"); return; } if(l>=f[x-2]) print(x-1,l-f[x-2],r-f[x-2]); else if(r<f[x-2]) print(x-2,l,r); else print(x-2,l,f[x-2]-1),print(x-1,0,r-f[x-2]); } int main(){ std::cin>>n>>L>>R; if(n==0) {printf("0\n");return 0;} if(n==1) {printf("1\n");return 0;} f[0]=1;f[1]=1; int i; for(i=2;i<=n;i++){ f[i]=f[i-1]+f[i-2]; if(f[i]>R) break; } if(L==0){ if(n%2==0){ if(R==0) {printf("0\n");return 0;} else printf("01"); }else{ if(R==0) {printf("1\n");return 0;} else printf("10"); } L=2; }if(L==1){ if(n%2==0) printf("1"); else printf("0"); L=2; } print(i,L,R); std::cout<<std::endl; return 0; }