2020年第十一届蓝桥杯 - 国赛 - Java研究生组 - F.循环小数

在线评测

Ideas

对于一个纯循环小数,假设循环节为l,则小数为0.llll…,转换为分数就是 l / (10 ** n - 1),其中n为循环节L的长度。

也就是说,我们要找到一个真分数 x / y,等于 l / (10 ** n - 1),即x = l,y = 10 ** n - 1。

对于混合循环小数,可以把循环体和非循环体拆开,即设循环体为l,非循环体为k,则小数为0.klll…,我们可以把它拆成两部分:0.k + 0.l / (10 ** m),其中 m 为非循环体 k 的长度。

转换成分数就是 k / (10 ** m) + l / (10 ** n - 1) / (10 ** m) = (k + l / (10 ** n - 1)) / (10 ** m) = (k * (10 ** n - 1) + l) / ((10 ** n - 1) * (10 ** m))。

所以 x = (k * (10 ** n - 1) + l),y = ((10 ** n - 1) * (10 ** m))。

最后,我们要求的是最简真分数,所以还需要求一下 x 和 y 的最大公约数,让 x 和 y 再除一下。

Code

Python

def gcd(a, b):return a if b == 0 else gcd(b, a % b)if __name__ == '__main__':p, q = map(int, input().split())num = int(input())m, n = p - 1, q - p + 1k = int(num / (10 ** n))l = int(num % (10 ** n))x, y = k * (10 ** n - 1) + l, (10 ** n - 1) * (10 ** m)g = gcd(x, y)x, y = x / g, y / gprint(f"{int(x)} {int(y)}")

2020年第十一届蓝桥杯 - 国赛 - Java研究生组 - F.循环小数相关推荐

  1. 2020年第十一届蓝桥杯 - 省赛 - Java研究生组+Java大学B组+Python大学组 - E.排序

    Ideas 冒泡排序在最坏情况下(完全逆序)的交换次数为cnt=n(n−1)2cnt=\frac{n(n-1)}{2}cnt=2n(n−1)​,当n=14时,cnt=91,当n=15时,cnt=105 ...

  2. 2020年第十一届蓝桥杯 - 国赛 - Python大学组 - H.答疑

    题目链接 Ideas 2020年第十一届蓝桥杯 - 国赛 - Python大学组 - H.答疑 Code Python if __name__ == '__main__':n = int(input( ...

  3. 2020第十一届蓝桥杯国赛JAVA B组真题解析(带源码及解析)

    蓝桥杯历年真题及解析. 目录 蓝桥杯历年真题及解析. A: 美丽的 2 题目: 分析: AC代码: B: 扩散 题目: 分析: AC代码: C: 阶乘约数 题目: 分析: AC代码: D: 本质上升序 ...

  4. 2020年第十一届蓝桥杯 - 国赛 - Python大学组 - G.重复字符串

    在线评测 Ideas 首先把字符串划分成 k 份,然后每份逐位对比,计算出现次数最多的字母,然后用 k 减去出现次数就是要修改的位置. Code Python from collections imp ...

  5. 2020年第十一届蓝桥杯国赛—c++B组—试题F:皮亚诺曲线距离

    这道题我写了一个多小时,还是自己太菜了,两个样例都过了,三阶皮亚诺随便取了两个点,距离也是正确的,如果有大佬找到了我的问题,欢迎指正 以下是我的思路 思路 总体就是求出两个点到原点的距离,然后相减即可 ...

  6. 2020年第十一届蓝桥杯省赛Java b组题目 答案解析

    试题 A: 门牌制作 本题总分:5 分 [问题描述] 小蓝要为一条街的住户制作门牌号. 这条街一共有 2020 位住户,门牌号从 1 到 2020 编号. 小蓝制作门牌的方法是先制作 0 到 9 这几 ...

  7. 2020年第十一届蓝桥杯 - 省赛 - Python大学组 - D.蛇形填数

    这道题同样还是: 2020年第十一届蓝桥杯 - 省赛 - C/C++研究生组 - D.蛇形填数 2020年第十一届蓝桥杯 - 省赛 - Java研究生组 - D.蛇形填数 Ideas 这题其实严格意义 ...

  8. 填词游戏java_第八届蓝桥杯国赛 Java B组 第五题 填字母游戏(博弈论)

    解题思路: 因为是博弈论,所以我们要对先手的必胜态和必败态分析. 1.首先我们看赢遇到的状态,就是给出的串的子串有LO*,*OL,L*L这三种情况(就叫福利局吧~).都可以直接填出LOL,获胜. 2. ...

  9. 2016蓝桥杯国赛 JAVA C组第五题 路径之谜

    蓝桥杯确实很暴力... 路径之谜 小明冒充X星球的骑士,进入了一个奇怪的城堡. 城堡里边什么都没有,只有方形石头铺成的地面. 假设城堡地面是 n x n 个方格.[如图1.png]所示. 按习俗,骑士 ...

最新文章

  1. MAXIEYE创始人周圣砚:以规模化迎接智能驾驶科技平权时代 | MEET2022
  2. JZOJ 5371. 【NOIP2017提高A组模拟9.17】组合数问题
  3. 分布式 | Dubbo 架构设计详解
  4. 服务器登陆显示其他用户,连接远程服务器显示其他用户
  5. linux中匿名用户怎么登陆_南京课工场IT培训:Linux中vsftpd服务配置(匿名,用户,虚拟用户)...
  6. js使用location的方法实验
  7. python watchdog休眠_python watchdog
  8. Invalid attempt to read when no data is present.
  9. plc用c语言编程的好处,学习PLC编程的重要性
  10. 中小企业信息网络安全解决方案
  11. 协同办公软件竞品分析
  12. 全面的在线教育直播平台是怎样的呢?
  13. python 设置输入法为英文_python 怎么转化输入法
  14. PE文件加节感染之Win32.Loader.bx.V病毒分析
  15. 《人性的弱点》【美】戴尔 卡耐基 读书笔记
  16. SVN添加账户及删除MyEclipse中记住的SVN账户名密码信息
  17. 8255A的工作方式
  18. 稍微挖掘一下思维导图XMind潜力以及那个使用XMind的你
  19. python人工智能应用实例_90后博士说,从Python到人工智能只差这35个趣味案例,越学越有趣...
  20. 从零开始的Wordpress个人网站搭建(图文)

热门文章

  1. 改进的SVN的Commit权限控制
  2. 概率dp——处理分母为0的情况hdu3853
  3. sql注入问题-视图-事物-以及存储过程(可视化工具)
  4. Centos下MySql用户管理
  5. windows下Meteor+AngularJS开发的坑
  6. C语言入门题-计算指数 (15分)
  7. java apt anno_Android Studio中使用apt
  8. Java黑皮书课后题第5章:*5.51(最长的共同前缀)编写一个程序,提示用户输入两个字符串,显示两个字符串最长的共同前缀
  9. 十代i7前端总线频率_Intel 10nm十代酷睿终极版发布:频率暴涨、苹果独享
  10. 【强烈推荐】《剑指Offer:名企面试官精讲典型编程题》一书中IT名企经典面试题