题意:
      给你一个十进制数,让你把他转化成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. oracle XE解决端口占用等问题
  2. C#仿QQ皮肤-主窗体MainForm和Main的实现
  3. P3868 [TJOI2009]猜数字(CRT板子)
  4. Unity技术专家:游戏最重要的是好玩而不是高画质...
  5. 微信授权登录提示不能访问?
  6. 线性代数:如何最通俗地理解矩阵的「秩」?
  7. Python内置数据类型之Tuple
  8. android chrome 44,[图]非隔代升级:新代码暗示Chrome OS的安卓支持将基于Android Q
  9. 【BZOJ3530】数数(AC自动机,动态规划)
  10. express 模板 及 文件上传
  11. 朱晔和你聊Spring系列S1E5:Spring WebFlux小探
  12. 《剑指offer》面试题6——重构二叉树——已知 前序遍历和中序遍历,求后序遍历(C++)
  13. 【数字信号处理】fft幅频特性和相频特性理解
  14. mysql 1236错误_mysql故障~Got fatal error 1236 解决方法
  15. 一个疯狂的地下市场--支付牌照的买卖
  16. Android-PickerView实现全国地区选择
  17. 基于html篮球网页游戏,分享一款在线打篮球游戏网页源码
  18. 3D立体显示技术原理与游戏应用历程简介
  19. 道一HTTP测试工具
  20. 小白学习Java第二十六天

热门文章

  1. CentOS6.8 搭建SVN并用钩子自动实现同步到web目录
  2. Linux开机启动顺序
  3. linux系统下的grep命令功能与正则表达式详解
  4. C#里的委托和事件实现 (转)
  5. hibernate入门
  6. Unity 之事件系统
  7. 大话Django之一:安装与启动
  8. 浏览器缓存:强缓存和协商缓存
  9. PLSQL:[1]plsql中文乱码,显示问号
  10. Linux1:Linux概述