hdu4814 模拟(黄金分割进制转换)
题意:
给你一个十进制数,让你把他转化成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 模拟(黄金分割进制转换)相关推荐
- javascript进制转换_《算法笔记》3.5小节——入门模拟-gt;进制转换
@[TOC] # Contest100000579 - <算法笔记>3.5小节--入门模拟->进制转换 ## 例题 ### PATB1022 PTA | 程序设计类实验辅助教学平台 ...
- 《算法笔记》3.5小节——入门模拟->进制转换 问题 D: 八进制
问题 D: 八进制 时间限制 : 1.000 sec 内存限制 : 32 MB 题目描述 输入一个整数,将其转换成八进制数输出. 输入 输入包括一个整数N(0<=N<=100000). 输 ...
- python进制转换函数及方法
python进制转换函数 一.通过int函数实现其他进制转十进制 假设 M 为某已知进制字符串 n 的进制数 result = int(n,M) --------------------------- ...
- POJ - 1220 NUMBER BASE CONVERSION(高精度运算+进制转换+模拟)
题目链接:点击查看 题目大意:给出两个进制x和y,再给出一个x进制下的数num,求num转换为y进制后的答案 题目分析:直接套模板就行了,进制转换没什么好说的,直接模拟,这个题开了加速外挂只能优化几十 ...
- c语言生成16进制随机数,C语言实战篇——模拟ATM取款机,最强大脑小游戏,进制转换,产生不同的随机数...
2019.11.24 模拟ATM取款机 如图为登录界面 银行.png #include int main(){ printf("----------------------------\n& ...
- JavaScript实现在线进制转换工具网站 -toolfk程序员在线工具网
本文要推荐的[ToolFk]是一款程序员经常使用的线上免费测试工具箱,ToolFk 特色是专注于程序员日常的开发工具,不用安装任何软件,只要把内容贴上按一个执行按钮,就能获取到想要的内容结果.Tool ...
- 【轻院热身赛】级数求和、进制转换、candy
[题目链接:级数求和] Problem A: 级数求和 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 409 Solved: 240 SubmitS ...
- CCF NOI1036 进制转换
问题链接:CCF NOI1036 进制转换. 时间限制: 1000 ms 空间限制: 262144 KB 题目描述 模拟将任意给定的正整数n转换成对应的二进制数的过程:对于输入的任意正整数n,输出若 ...
- 《算法零基础100讲》(第20讲) 进制转换(二) - 进阶[C语言题解]
文章目录 一. 知识普及 1.1 atoi 1.2 log 1.3 pow 1.4 floor 二. 进阶题解 168. Excel表列名称 171. Excel 表列序号 483. 最小好进制 一. ...
最新文章
- oracle XE解决端口占用等问题
- C#仿QQ皮肤-主窗体MainForm和Main的实现
- P3868 [TJOI2009]猜数字(CRT板子)
- Unity技术专家:游戏最重要的是好玩而不是高画质...
- 微信授权登录提示不能访问?
- 线性代数:如何最通俗地理解矩阵的「秩」?
- Python内置数据类型之Tuple
- android chrome 44,[图]非隔代升级:新代码暗示Chrome OS的安卓支持将基于Android Q
- 【BZOJ3530】数数(AC自动机,动态规划)
- express 模板 及 文件上传
- 朱晔和你聊Spring系列S1E5:Spring WebFlux小探
- 《剑指offer》面试题6——重构二叉树——已知 前序遍历和中序遍历,求后序遍历(C++)
- 【数字信号处理】fft幅频特性和相频特性理解
- mysql 1236错误_mysql故障~Got fatal error 1236 解决方法
- 一个疯狂的地下市场--支付牌照的买卖
- Android-PickerView实现全国地区选择
- 基于html篮球网页游戏,分享一款在线打篮球游戏网页源码
- 3D立体显示技术原理与游戏应用历程简介
- 道一HTTP测试工具
- 小白学习Java第二十六天