题意:
      给你一个十进制数,让你把他转化成Q进制数,Q是黄金分割比 = (1+√5)/2.
思路:
       首先要明确的就是虽然q是实数,但是依然可以转换成q进制数,因为任何数num,都有 num = num * 1 => num = num * q^0,先把所有的数字都放在各位,然后在根据题目的要求吧他转化成所有的数字都是0或者1,不能有两个连续的1,首先题目给了我们两个式子,经过简单转化就能得到这两个式子
Q^n = Q^(n-1) + Q^(n-2)
2*Q^n = Q^(n+1) + Q^(n-2)
这样对于全都转换成0,1,我们可以先把所有的数字num都放在个位,然后在根据
2*Q^n = Q^(n+1) + Q^(n-2)把大于1的数字分解,一直分解到所有数字小于等于1

对于连续的11我们可以Q^n = Q^(n-1) + Q^(n-2)分解连续的1,有一点要注意的就是这两个处理要同时做,因为分解11可能会产生大于1的数字,所以两个一起弄(一起的意思就是while(!ok){处理问题1;处理问题2;}),直到所有的都满足条件就行了。


#include<stdio.h>
#include<string.h>

int main ()
{int ans[105] ,i ,j;int n;while(~scanf("%d" ,&n)){memset(ans ,0 ,sizeof(ans));ans[50] = n;int mk = 1;while(mk){mk = 0;for(i = 2 ;i <= 100 ;i ++){if(ans[i] > 1){ans[i+1] += ans[i] / 2;ans[i-2] += ans[i] / 2;ans[i] %= 2;mk = 1;}}for(i = 1 ;i <= 100 ;i ++)if(ans[i] && ans[i+1]){int tmp = ans[i] < ans[i+1] ? ans[i] : ans[i+1];ans[i] -= tmp;ans[i+1] -= tmp;ans[i+2] += tmp;}}int st ,et;for(i = 100 ;i >= 1 ;i --)if(ans[i]) {st = i;break;}for(i = 1 ;i <= 100 ;i ++)if(ans[i]) {et = i ;break;}for(i = st ;i >= et ;i --){if(i == 49)printf(".");printf("%d" ,ans[i]);}puts("");}return 0;
}

hdu4814 模拟(黄金分割进制转换)相关推荐

  1. javascript进制转换_《算法笔记》3.5小节——入门模拟-gt;进制转换

    @[TOC] # Contest100000579 - <算法笔记>3.5小节--入门模拟->进制转换 ## 例题 ### PATB1022 PTA | 程序设计类实验辅助教学平台 ...

  2. 《算法笔记》3.5小节——入门模拟->进制转换 问题 D: 八进制

    问题 D: 八进制 时间限制 : 1.000 sec 内存限制 : 32 MB 题目描述 输入一个整数,将其转换成八进制数输出. 输入 输入包括一个整数N(0<=N<=100000). 输 ...

  3. python进制转换函数及方法

    python进制转换函数 一.通过int函数实现其他进制转十进制 假设 M 为某已知进制字符串 n 的进制数 result = int(n,M) --------------------------- ...

  4. POJ - 1220 NUMBER BASE CONVERSION(高精度运算+进制转换+模拟)

    题目链接:点击查看 题目大意:给出两个进制x和y,再给出一个x进制下的数num,求num转换为y进制后的答案 题目分析:直接套模板就行了,进制转换没什么好说的,直接模拟,这个题开了加速外挂只能优化几十 ...

  5. c语言生成16进制随机数,C语言实战篇——模拟ATM取款机,最强大脑小游戏,进制转换,产生不同的随机数...

    2019.11.24 模拟ATM取款机 如图为登录界面 银行.png #include int main(){ printf("----------------------------\n& ...

  6. JavaScript实现在线进制转换工具网站 -toolfk程序员在线工具网

    本文要推荐的[ToolFk]是一款程序员经常使用的线上免费测试工具箱,ToolFk 特色是专注于程序员日常的开发工具,不用安装任何软件,只要把内容贴上按一个执行按钮,就能获取到想要的内容结果.Tool ...

  7. 【轻院热身赛】级数求和、进制转换、candy

    [题目链接:级数求和] Problem A: 级数求和 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 409  Solved: 240 SubmitS ...

  8. CCF NOI1036 进制转换

    问题链接:CCF NOI1036 进制转换. 时间限制: 1000 ms  空间限制: 262144 KB 题目描述 模拟将任意给定的正整数n转换成对应的二进制数的过程:对于输入的任意正整数n,输出若 ...

  9. 《算法零基础100讲》(第20讲) 进制转换(二) - 进阶[C语言题解]

    文章目录 一. 知识普及 1.1 atoi 1.2 log 1.3 pow 1.4 floor 二. 进阶题解 168. Excel表列名称 171. Excel 表列序号 483. 最小好进制 一. ...

最新文章

  1. Linux启动流程(二)
  2. 二三代基因组混合组装流程的搭建与序列拼接并行优化方法研究_武海波
  3. java 昨天_JAVA取得昨天的当前时间?
  4. VHDL的数据对象(学习笔记1)
  5. LeetCode 467. 环绕字符串中唯一的子字符串(思维转换)
  6. 离开载具_绝地最强载具登场?
  7. 【LeetCode】【HOT】240. 搜索二维矩阵 II(抽象二叉搜索树)
  8. 培养创造力的10个注意点
  9. 【OGG】OGG简单配置双向复制(三)
  10. HTML示例06---段落(原格式标记)
  11. 阿里巴巴Java开发手册v1.2.0版
  12. string字符串比较
  13. 创e下载园7edown.com(坑爹流氓网站大揭秘)
  14. 算法注册机编写扫盲---第四课
  15. Java游戏培训机构哪家专业
  16. 120帧手机动态壁纸_星空陨石动态壁纸手机版下载-星空陨石动态壁纸app安卓版下载v1.7最新版...
  17. 武汉2022专技公需课必修答案
  18. JavaWeb-狂神-P11
  19. mysql怎么做排名并列_MySQL实现排名并查询指定用户排名功能,并列排名功能
  20. 讨论,您如何阅读论文?

热门文章

  1. SVN 报错svn: E200014: Checksum mismatch for 。。。。。
  2. 匹配中文字符的正则表达式: [/u4e00-/u9fa5]
  3. 设计模式-行为-Iterator(迭代器)模式
  4. saltstack的基础入门文档
  5. zabbix监控交换机出图断断续续
  6. 丢失或损坏NDF文件如何附加数据库
  7. 微软MCITP系列课程(一)第一讲:部署虚拟机
  8. 且看微软的.Net和Sun公司的J2EE如何对垒
  9. 色诱社报道:昨日,腾讯公司公布了2009年发展策划
  10. 架构模式: 事务日志跟踪