首页 > 编程语言 >挑战程序设计竞赛 2.6章习题 POJ 1930 Dead Fraction

挑战程序设计竞赛 2.6章习题 POJ 1930 Dead Fraction

时间:2024-04-04 20:55:50浏览次数:28  
标签:分数 ... Dead 1930 POJ 习题 分母 循环

https://vjudge.csgrandeur.cn/problem/POJ-1930

迈克在最后一刻拼命地赶着完成他的论文。在接下来的3天里,他需要将所有的研究笔记整理成较为连贯的形式。
不幸的是,他注意到他在计算方面非常粗心。每当他需要进行算术运算时,他只是将其输入计算器,并将他认为相关的答案写下来。
每当显示一个循环小数时,迈克只是简单地记录下前几位数字,然后加上“...”。例如,他可能会写下“0.3333...”而不是“1/3”。
不幸的是,他的结果需要精确的分数!他没有时间重新计算每个计算,所以他需要你写一个程序(而且要快!)来自动推断原始分数。
为了使这个过程可行,他假设原始分数总是产生给定数字序列的最简分数;他所说的最简是指分母最小的分数。
此外,他假设他没有忽略写下重要的数字;即使这个循环部分的小数展开全是零,也没有遗漏记录。
输入
有几个测试用例。对于每个测试用例,输入的一行是形如“0.dddd...”的字符串,其中dddd是由1到9个数字组成的,不能全为零。
最后一个用例后面跟着一行包含0的输入。
输出
对于每个用例,输出原始分数。

0.2...
0.20...
0.474612399...
0

2/9
1/5
1186531/2500000


0.308048647...
154024322/499999995


0.012345679...
1/81


0.1428571...
0.14285714...
0.142857142...
1/7

解答
循环数的规律
0.233233 这种循环就是 233/999 分母9的出现个数是循环节的长度

0.666233233233 这种循环就是 666233-666 / 999000 也就是整个数减去非循环节 然后除以999000
分母9的出现个数是循环节的长度 分母0出现的次数是非循环节的长度

但是题目 并不保证0.666233是以哪个循环节进行循环,所以要逐个尝试循环节,然后得到最简,也就是分母最小的分数。

标签:分数,...,Dead,1930,POJ,习题,分母,循环
From: https://www.cnblogs.com/itdef/p/18114585

相关文章

  • 挑战程序设计竞赛 2.6章习题 UVA - 10006 Carmichael Numbers
    https://vjudge.csgrandeur.cn/problem/UVA-10006当今计算机科学的一个重要的领域就是密码学。有些人甚至认为密码学是计算机科学中唯一重要的领域,没有密码学生命都没有意义。阿尔瓦罗就是这样的一个人,它正在设计一个为西班牙杂烩菜饭加密的步骤。他在加密算法中应用了一......
  • 攻防世界Misc新手习题集
    攻防世界Misc新手习题集日期:2024.04.01from故人叹、1.Ditf考察点:png图片改宽高、流量分析附件给到一张图片,拖入010分析,发现底部有CRC报错信息,怀疑原始宽高被更改。尝试更改高度,获得一段编码,可能为某个压缩包的密码。StRe1izia将图片进行foremost分离,发现一个加密压......
  • 大学教材《C语言程序设计》(浙大版)课后习题解析 | 第九、十章
    概述    本文主要提供《C语言程序设计》(浙大版)第九、十章的课后习题解析,以方便同学们完成题目后作为参考对照。后续将更新第十一、十二章节的课后习题解析,如想了解更多,请持续关注该专栏。专栏直达链接:《C语言程序设计》(浙大版)_孟俊宇-MJY的博客-CSDN博客​http://......
  • P1957 口算练习题
    题目描述王老师正在教简单算术运算。细心的王老师收集了 i 道学生经常做错的口算题,并且想整理编写成一份练习。编排这些题目是一件繁琐的事情,为此他想用计算机程序来提高工作效率。王老师希望尽量减少输入的工作量,比如 5+85+8 的算式最好只要输入 55 和 88,输出的结果......
  • 攻防世界Misc新手习题集
    攻防世界Misc新手习题集日期:2024.04.01from故人叹、1.Ditf考察点:png图片改宽高、流量分析附件给到一张图片,拖入010分析,发现底部有CRC报错信息,怀疑原始宽高被更改。尝试更改高度,获得一段编码,可能为某个压缩包的密码。StRe1izia将图片进行foremost分离,发现一个加密压......
  • python基础(四)----列表、字典练习题
    好友管理系统请设计一个好友管理系统,每个功能都对应一个序号,用户可根据提示“请输入您的选项”选择序号执行相应的操作,包括:(1)添加好友:用户根据提示“请输入要添加的好友:”输入要添加好友的姓名,添加后会提示“好友添加成功”。(2)删除好友:用户根据提示“请输入删除好友姓名:”输入要删......
  • Python列表、字典、元组练习题
    一、将下列姓名长度小于2字符的删除,将写法不同但名字一样的名字合并,并按首字母大写形式输出。names=[‘Bob’,‘JOHN’,‘alice’,‘bob’,‘ALICE’,‘J’,‘Bob’]答案:names=['Bob','JOHN','alice','bob','ALICE','J','Bob']ans={name.title()for......
  • 猜数字-周末习题
    程序随机内置一个位于一定范围内的数字作为猜测的结果,由用户猜测此数字。用户每猜测一次,由系统提示猜测结果:太大了、太小了或者猜对了,直到用户猜对结果或者猜测次数用完导致失败。importrandomnum=random.randint(0,99)count=0whilecount<3:guess=int(input("please......
  • 00342第四章 结构化程序设计 思考题和练习题(C语言)
    一、单项选择题1.若从键盘输入字符串"HOWAREYOU?",可以直接使用库函数【】。        A.scanf    B.getstr    C.gets    D.都不能直接使用2.C语言的库函数中,可以输出double型变量值的是【】。        A.getchar   ......
  • 大学教材《C语言程序设计》(浙大版)课后习题解析 | 第七、八章
    概述    本文主要提供《C语言程序设计》(浙大版)第七、八章的课后习题解析,以方便同学们完成题目后作为参考对照。后续将更新第九、十章节的课后习题解析,如想了解更多,请持续关注该专栏。专栏直达链接:《C语言程序设计》(浙大版)_孟俊宇-MJY的博客-CSDN博客​http://t.cs......