URAL 1081 Binary Lexicographic Sequence

 

URAL 1081 Binary Lexicographic Sequence

第13个位置第5个Bit :13>num[4] =>1 第四个bit 13-num[4]=5 :5<num[3] =>0 ,3-1 第三个Bit 5>num[2](3) 5-num[2]=2 ...

#include<stdio.h>



int num[45];



void init()

{

    num[0]=1;

    num[1]=2;

    int k=2;

    while(k<44)

    {

        num[k]=num[k-1]+num[k-2];

        k++;

    }

}



int main(void)

{

    init();

    int n,k;

    while(scanf("%d%d",&n,&k)!=EOF)

    {

        if(k>num[n])

            printf("-1\n");

        else

        {

            while(n)

            {

                if(k>num[n-1])

                {

                    putchar('1');

                    k-=num[n-1];

                }

                else

                    putchar('0');

                n--;

            }

            putchar('\n');

        }

    }

    return 0;

}

 

你可能感兴趣的:(sequence)