• 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;
    }
    


  • 相关阅读:
    cPanel设置自定义404错误页
    jquery鼠标移入某区域屏蔽鼠标滚轮 滚动滚动条
    阻止子元素继承父元素事件(郁闷我一晚上的问题!)
    告别码农,成为真正的程序员
    PHP中数组合并的两种方法及区别介绍
    理解OAuth 2.0[摘]
    mysql之触发器trigger 详解
    ThinkPHP Where 条件中使用表达式
    linux下利用curl监控网页shell脚本
    XUtils 3 使用
  • 原文地址:https://www.cnblogs.com/ldxsuanfa/p/10608175.html
  • Copyright © 2020-2023  润新知