zoukankan      html  css  js  c++  java
  • HDU 4814 Golden Radio Base

    版权声明:本文为博主原创文章。未经博主同意不得转载。 https://blog.csdn.net/u013351160/article/details/36036903

    题意:

    把一个10进制数变成 x进制数  x = (1+√5)/2


    思路:

    比赛时候就被无理数进制吓傻了  事实上全然不是必需  由于 n = n * 1 = n * x^0

    由于x的0次幂等于1   所以全然能够把n当成相应的x进制数的个位  如今要做的就是把这个数转化成二进制

    题目给出的公式能够在两边同一时候乘x的若干次幂  那么这两个式子就变成了

    x^(i+1) + x^i = x^(i+2)

    2 * x^i = x^(i+1) + x^(i-2)

    通过这两个式子不停的去变换数字  直到数字不再变了就停下来输出


    代码:

    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    #define N 100
    
    int a[N*2];
    int n,u,v;
    
    int main()
    {
        int i,k,flag;
        while(~scanf("%d",&n))
        {
            memset(a,0,sizeof(a));
            a[N]=n;
            do
            {
                flag=0;
                for(i=0;i<N*2-2;i++)
                {
                    if(a[i]&&a[i+1])
                    {
                        k=min(a[i],a[i+1]);
                        a[i]-=k;
                        a[i+1]-=k;
                        a[i+2]+=k;
                        flag=1;
                    }
                }
                for(i=2;i<N*2-1;i++)
                {
                    if(a[i]>1)
                    {
                        k=a[i]/2;
                        a[i]%=2;
                        a[i-2]+=k;
                        a[i+1]+=k;
                        flag=1;
                    }
                }
            }while(flag);
            for(u=2*N-1;u>N&&!a[u];u--);
            for(v=0;v<N&&!a[v];v++);
            for(i=u;i>=N;i--) printf("%d",a[i]);
            if(v!=N)
            {
                printf(".");
                for(i=N-1;i>=v;i--) printf("%d",a[i]);
            }
            printf("
    ");
        }
        return 0;
    }
    


查看全文
  • 相关阅读:
    题解-CmdOI2019 口头禅
    题解-NOI2003 智破连环阵
    题解-CF1282E The Cake Is a Lie
    CF1288F Red-Blue Graph
    题解-洛谷P4229 某位歌姬的故事
    莫比乌斯反演
    [HNOI2008]越狱(bzoj1008)(组合数学+正难则反)
    [FJOI2007]轮状病毒(bzoj1002)(递推+高精度)
    矩阵快速幂
    高斯消元
  • 原文地址:https://www.cnblogs.com/ldxsuanfa/p/10608175.html
  • Copyright © 2011-2022 走看看