HDU 4814 Golden Radio Base 小模拟

HDU 4814 Golden Radio Base 小模拟

大家好,又见面了,我是全栈君,祝每个程序员都可以多学几门语言。

链接:http://acm.hdu.edu.cn/showproblem.php?pid=4814

题意:黄金比例切割点是HDU 4814 Golden Radio Base 小模拟,如今要求把一个10进制的的数转化成一个phi进制的数,而且不能出现‘11’的情况。

思路:因为题目中给出了HDU 4814 Golden Radio Base 小模拟HDU 4814 Golden Radio Base 小模拟两个式子,题目就变成了一道简单的模拟题了。因为整个phi进制的数最多仅仅有200,而数据中最多仅仅有100位,所以从aa[50]=tot 開始模拟就可以。

代码:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<map>
#include<cstdlib>
#include<queue>
#include<stack>
#include<vector>
#include<ctype.h>
#include<algorithm>
#include<string>
#include <cstdlib>
#define PI acos(-1.0)
#define maxn 10005
#define INF 0x7fffffff
using namespace std;
int main()
{
    int aa[105];
    int tot;
    while(~scanf("%d",&tot))
    {
        memset(aa,0,sizeof(aa));
        aa[50]=tot;
        while(1)
        {
            bool flag = 0 ;
            for(int i=0; i<=100; i++)
            {
                if(aa[i]>1)
                {
                    flag = 1;
                    aa[i+1]+=(aa[i]/2);
                    aa[i-2]+=(aa[i]/2);
                    aa[i]%=2;
                }
            }
            for(int i=0;i<=100;i++)
            {
                if(aa[i]>0&&aa[i+1]>0)
                {
                    flag = 1;
                    int t=min(aa[i],aa[i+1]);
                    aa[i+2]+=t;
                    aa[i+1]-=t;
                    aa[i]-=t;
                }
            }
            if(flag==0)
                break;
        }
        int head,tail;
        for(int i=100;; i--)
        {
            if(aa[i]==1)
            {
                head=i;
                break;
            }
        }
        for(int i=0;; i++)
        {
            if(aa[i]==1)
            {
                tail=i;
                break;
            }
        }
        for(int i=head; i>=tail; i--)
        {
            if(i==49)
                printf(".");
            printf("%d",aa[i]);
        }
        printf("\n");
    }
    return 0;
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/118430.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • vs2019配置opencv什么版本_vs配置opencv

    vs2019配置opencv什么版本_vs配置opencv一、环境vs2019社区版、win1064位操作系统二、opencv配置步骤(共5步)1、下载OpenCV4.0.1,官网为opencv.org2、安装opencv,我的安装目录是D:\opencv-4.0.1-vc14_vc153、添加环境变量,在PATH中添加:D:\opencv-4.0.1-vc14_vc15\opencv\build\x64\vc15…

    2022年10月20日
    1
  • mongoshake实现mongodb数据同步

    mongoshake实现mongodb数据同步mongoshake实现mongodb数据同步

    2022年6月28日
    36
  • vue(20)生命周期函数「建议收藏」

    vue(20)生命周期函数「建议收藏」生命周期函数生命周期函数代表的是Vue实例,或者是Vue组件,在网页中各个生命阶段所执行的函数。生命周期函数可以分为创建阶段和运行期间以及销毁期间。其中创建期间的函数有beforeCreate、c

    2022年8月7日
    6
  • java培训学校杭州_杭州Java培训班

    java培训学校杭州_杭州Java培训班前言这段时间也一直在学习Netty相关知识,因为涉及知识点比较多,也走了不少弯路。目前网上关于Netty学习资料玲琅满目,不知如何下手,其实大家都是一样的,学习方法和技巧都是总结出来的,我们在没有找到很好的方法之前不如按部就班先从基础开始,一般从总分总的渐进方式,既观森林,又见草木。Netty是一款提供异步的、事件驱动的网络应用程序框架和工具,是基于NIO客户端、服务器端的编程框架。所以这里我们先以NIO和依赖相关的基础铺垫来进行剖析讲解,从而作为Netty学习之旅的一个开端。为什么学Java?Jav

    2022年10月3日
    2
  • Linux – CentOS7下安装PyCharm2019「建议收藏」

    Linux – CentOS7下安装PyCharm2019「建议收藏」1、下载安装包1.1、下载通过wget命令下载pycharm-community-2019.2.3.tar.gz,下载地址为官方网站,可以访问官网下载其他版本的pycharm下载过程:下载成功,下载文件存放到默认/root目录,ls命令查看已下载pycharm-community-2019.2.3.tar.gz安装文件:1.2、解压缩包首先将下载的安装包…

    2022年8月26日
    7
  • type=INNODB和engine=INNODB的区别

    type=INNODB和engine=INNODB的区别

    2021年8月28日
    57

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号