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


查看全文
  • 相关阅读:
    WebApi 自定义过滤器实现支持AJAX跨域的请求
    ASP.NET MVC 实现与SQLSERVER的依赖缓存
    MVC4+Springnet+Nhibernate学习系列随笔(一)
    自定义JsonResult处理JSON序列化DateTime类型数据(Ext4.2+ASP.NET MVC 4)
    SqlServer计算周岁的函数
    RabbitMq 使用笔记(winows 64版本)
    解决IDEA下tomcat启动server乱码
    Servlet学习笔记(一)
    解决IDEA使用terminal时 git log 乱码
    Git常用的命令
  • 原文地址:https://www.cnblogs.com/ldxsuanfa/p/10608175.html
  • Copyright © 2011-2022 走看看