HDU1717--小数化分数2】的更多相关文章

小数化分数2 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 4278    Accepted Submission(s): 1725 Problem Description Ray 在数学课上听老师说,任何小数都能表示成分数的形式,他开始了化了起来,很快他就完成了,但他又想到一个问题,如何把一个循环小数化成分数呢?请你写一个程序不但可以…
Description Ray 在数学课上听老师说,任何小数都能表示成分数的形式,他开始了化了起来,很快他就完成了,但他又想到一个问题,如何把一个循环小数化成分数呢? 请你写一个程序不但可以将普通小数化成最简分数,也可以把循环小数化成最简分数.   Input 第一行是一个整数N,表示有多少组数据. 每组数据只有一个纯小数,也就是整数部分为0.小数的位数不超过9位,循环部分用()括起来.   Output 对每一个对应的小数化成最简分数后输出,占一行.   Sample Input 3 0.(4…
小数化分数2 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 2988    Accepted Submission(s): 1224 Problem Description Ray 在数学课上听老师说,任何小数都能表示成分数的形式,他开始了化了起来,很快他就完成了,但他又想到一个问题,如何把一个循环小数化成分数呢?请你写一个程序不但可以…
小数化分数2 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 5723    Accepted Submission(s): 2339 Problem Description Ray 在数学课上听老师说,任何小数都能表示成分数的形式,他开始了化了起来,很快他就完成了,但他又想到一个问题,如何把一个循环小数化成分数呢?请你写一个程序不但可以…
参考了https://www.cnblogs.com/dwtfukgv/p/5645446.html (1)直接二分答案.说实话我没有想到, 一开始以为是贪心, 以某种策略能得到最优解. 但是想了很久没想出来, 后来看了博客发现因为显然答案是单调的, 可以用二分来做. 看到最大, 最小, 可以考虑答案是否单调, 单调考虑用二分 (2)然后是小数化分数, 其实一开始我想模拟分数, 然后发现很麻烦, 之后博客里的方法技巧性很强. 其实这个方法默认了分母是在1到n之间的, 而好像题目并没有给出这个条件…
http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1303 这个OJ很容易跪所以我贴一下题目 Description 任意一个分数都是有理数,对于任意一个有限小数,我们都可以表示成一个无限循环小数的形式(在其末尾添加0),对于任意一个无限循环小数都可以转化成一个分数.现在你的任务就是将任意一个无限循环小数转化成既约分数形式.所谓既约分数表示,分子和分母的最大公约数是1. Input 有多组数据. 每组数据一行.输入为0.a1a2a3...ak(b1…
question:小数化分数2 思路: /** * 这道题没有整数部分(有也无所谓,算小数部分,算完了分子分母按倍数加上就好),也就是说数组直接从a[2]开始后面是小数,我把这道题分为了三类: * * ①普通有限小数 * * ②纯循环小数 * * ③混循环小数 * * 下面就挨个说它的转化方法: * * ①这一类很简单,分子就是小数点后面的数,分母就是10的n次方(n为小数点后面位数) * * ②这个小学学奥数的时候老师讲过,也不是很难:分子是循环的数,分母就是和它位数相同的9,比如0.(14)…
解题报告:输入一个小于1的小数,让你把这个数转化成分数,但注意,输入的数据还有无限循环的小数,循环节用一对括号包含起来. 之前还没有写过小数转分数的题,当然如果没有循环小数的话,应该比较简单,但是这题要求有循环小数.其实这里要用到一个很巧妙的方法,这里以0.4444444....这个无限循环小数来作为例子,0.444...*10 - 0.444.... = 4,又有左边的0.444...可以提出来,所以得到: 0.444....(10-1) = 4; 即0.444....*9 = 4, 所以无限…
具体约束: 给定一个小数x,x满足0<=x<1,且保证给定的x保留了18位小数 输出一个分数,使得分母不超过1e9,分子分母互质,且在满足这些条件的情况下最接近x 了解一下法雷数列和stern-brocot tree (某种意义上他们是在描述一个东西) https://en.wikipedia.org/wiki/Stern%E2%80%93Brocot_tree 然后考虑在这个树上二分答案的上下界(个人觉得也可以叫伪二分), 一层一层的下降,时间复杂度O(q), q为限制分母大小,本题中为1e…
简单字符串处理. #include <cstdio> #include <cstring> #include <cmath> #include <ctype.h> #define MAXN 25 char str[MAXN]; ]; int gcd(int m, int n) { ) return n; if (m > n) return gcd(n, m); else return gcd(m, n%m); } int main() { int t,…
链接: http://acm.hdu.edu.cn/showproblem.php?pid=1717 举例: 0.24333333…………=(243-24)/900=73/3000.9545454…………=(954-9)/990=945/990=21/22 代码: #include<stdio.h> #include<string.h> #define N 110 int gcd(int a, int b) { return b==0?a:gcd(b, a%b); } int ma…
这道题是将输入的小数(有可能是无限循环小数)来化为分数.刚開始看到以为枚举(千万不要嘲笑我),可是感觉不正确. 所以百度了小数化为分数的方法,然后看到了各种方法,原来是这这样,在这我採用的是小数化为分数的套公式法 纯循环 用9做分母,有多少个循环数就几个9.比方0.3,3的循环就是9分之3,0.654,654的循环就是999分之654. 0.9.9的循环就是9分之9(1).以此类推. 混循环 先来看几个样例 例:把混循环小数0.228˙化为分数: 解:0.228˙ =[(228/1000)+8/…
将无限小数化为分数,有一套简单的公式.使其轻松表示出来. 循环节 例如:0.121212…… 循循环节为12.   公式 这个公式必须将循环节的开头放在十分位.若不是可将原数乘10^x(x为正整数) 就为:12.121212……-0.121212……=12 100倍 - 1倍 =99 (99和12之间一条分数线) 此公式需用两位数字,其中两位数差出一个循环节.   再举一个例子:0.00121212…… 公式就变为:1212.121212……-12.121212……=1200 100000 倍…
Dead Fraction Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 3478   Accepted: 1162 Description Mike is frantically scrambling to finish his thesis at the last minute. He needs to assemble all his research notes into vaguely coherent for…
精度为小数两位,提高精度可把 toFixed(2)和100同时修改: function decimalsToFractional(decimals){ const formatDecimals = decimals.toFixed(2) let denominator = 100 //初始化分母 let numerator = formatDecimals * 100 //初始化分子 let bigger = 0 function recursion (){ bigger = denominat…
#include<stdio.h> #include<string.h> #include<algorithm> #include<math.h> #include<map> #include<iostream> using namespace std; #define jw 10 ///小小的总结了一下 ///没有循环的方式略,当有循环的时候,就要用到0.999999... = 1的知识了 ///0.99999.. = (9/10)…
实现目标 用C++实现下图所示的一个console程序: 其中: 1.加减乘除四种运算符号分别用+.-.*./表示, + 和 - 还分别用于表示正号和负号. 2.分数的分子和分母以符号 / 分隔. 3.支持括号和括号套括号的情形. 4.支持输入小数(小数点用符号 . 表示)和循环小数(循环部分起始位置用符号 ` 指定,比如:1.12`345表达的是1.12 345 345 345 ...). 5.输入中:允许任意添加空白字符:数字中允许任意添加逗号( , )字符:小数点前的整数为0时允许省略0.…
小数化分数2   Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)  Total Submission(s): 3420 Accepted Submission(s): 1258 Problem Description Ray 在数学课上听老师说,任何小数都能表示成分数的形式,他开始了化了起来,很快他就完成了,但他又想到一个问题,如何把一个循环小数化成分数呢? 请你写一个程序不但可以将…
杭电ACM分类: 1001 整数求和 水题1002 C语言实验题——两个数比较 水题1003 1.2.3.4.5... 简单题1004 渊子赛马 排序+贪心的方法归并1005 Hero In Maze 广度搜索1006 Redraiment猜想 数论:容斥定理1007 童年生活二三事 递推题1008 University 简单hash1009 目标柏林 简单模拟题1010 Rails 模拟题(堆栈)1011 Box of Bricks 简单题1012 IMMEDIATE DECODABILITY…
https://www.cpfn.org/bbs/viewtopic.php?f=85&t=5940&sid=ccbcf716d21191452e7c08a97b502337&start=10 相关博客: HDU 1717 小数化分数2(ACM Steps 2.1.8)…
题意:给定 n 个区间,然后把它们变成等长的,并且不相交,问最大长度. 析:首先是二分最大长度,这个地方精度卡的太厉害了,都卡到1e-9了,平时一般的1e-8就行,二分后判断是不是满足不相交,找出最长的.这个题并不难, 就是精度可能控制不好,再就是把小数化成分数时,可能有点麻烦. 代码如下: #include <iostream> #include <cmath> #include <cstdlib> #include <set> #include <…
转载:from http://blog.csdn.net/qq_28236309/article/details/47818349 基础题:1000.1001.1004.1005.1008.1012.1013.1014.1017.1019.1021.1028.1029. 1032.1037.1040.1048.1056.1058.1061.1070.1076.1089.1090.1091.1092.1093. 1094.1095.1096.1097.1098.1106.1108.1157.116…
急急忙忙要出去比赛就拉了一场有点sb的题目 5202: 网络寻路  时间限制(普通/Java):1000MS/3000MS     内存限制:65536KByte总提交: 15            测试通过:12 描述 X 国的一个网络使用若干条线路连接若干个节点.节点间的通信是双向的.某重要数据包,为了安全起见,必须恰好被转发两次到达目的地.该包可能在任意一个节点产生,我们需要知道该网络中一共有多少种不同的转发路径. 源地址和目标地址可以相同,但中间节点必须不同. 如下图所示的网络. 1 -…
小数化分数2 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 3037    Accepted Submission(s): 1237 Problem Description Ray 在数学课上听老师说,任何小数都能表示成分数的形式,他开始了化了起来,很快他就完成了,但他又想到一个问题,如何把一个循环小数化成分数呢? 请你写一个程序不但…
题目大意: 小数化分数,但是分母限制在[1,1000],很明显的枚举,但是在赛场上的时候傻逼了,无论怎么枚举,怎么二分就是wa,wa到死···········. (ps:我要给出题人寄刀片~~~~),这个题目需要注意的是有可能输出0/1. #include <cmath> #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using name…
  第一场组队训练……意料之中的爆炸. 开场先看题,H是斐波那契水题,qw把H切了. 同时czy看I题(排列),cst继续读其他题. czy尝试交I,PE. cst发现K是水题. cst上来敲K,WA.回去检查. czy继续干I,还是没过. cst又交了一发K,WA. czy交了一发I, 终于过了. cst把K交给了czy之后去看其他题. 与此同时qw开敲C,一发就过. D题看起来像个递推规律题. cst猜D结论,WA(事实上这个结论样例都过不去)czy交K,AC(之前cst把题目理解错了) c…
引言 前一阵做了一个有理数四则混合运算的程序(详见:用C++实现的有理数(分数)四则混合运算计算器),以分数形式呈现运算结果.这次添加以循环小数形式呈现运算结果的功能.例如: Please input a rational expression to calculate its value or input q to quit: 67+34*(23-78/(54*5))-2*(5/37-6.5789) = 67 + 34 * ( 23 - 78 / ( 270 ))-2*(5/37-6.5789…
以0.25为例, 0.25 * 100 = 25, 求25 和 100 的最大公约数gcd. 25/gcd 为分子. 100/gcd为分母. //小数转分数 //0.3 -> 3/10, 0.25 -> 1/4 public class dicimalToFraction{ public static void main(String [] args){ double a = 0.3; double b = 0.25; System.out.println(dicimalToFraction(…
先介绍几种基本方法. 1.toFixed()方法 toFixed() 方法是属于 Number 对象的方法,可以把 Number 四舍五入到指定的小数位数,括号内为小数位数,范围为0~20,为0时即取整数. 1.5.toFixed(0) //返回2 toFixed()方法是平时使用最多的方法,因为它不仅可以取整,还可以保留指定小数位数,适用范围较广. 2.parseInt()方法 parseInt()直接舍弃掉小数部分,只取整数: parseInt(1.5) //返回1 3.Math函数 Mat…