POJ1930】的更多相关文章

题意:给定一个无限循环小数,求其分数形势,要求分母最小 分析:看了别人的题解才做出来的,将无限循环小数转化成分数,分为纯循环和混循环两种形式. (1)对于纯循环:用9做分母,有多少个循环数就几个9,比如0.3,3的循环就是9分之3,0.654,654的循环就是999分之654, 0.9,9的循环就是9分之1,以此类推. (2)混循环:用9和0做分母,首先有几个循环节就几个9,接着有几个没加入循环的数就加几个0,再用小数点后面的数减 没加入循环的数,比如0.43,3的循环,有一位数没加入循环,就在…
题意: 很有意思的一道题,,将一个无限循环小数转化成分母最小的精确分数值....,循环的部分不一定是最后一位. Sample Input 0.2... 0.20... 0.474612399... 0 Sample Output 2/9 1/5 1186531/2500000 #include<set> #include<map> #include<queue> #include<stack> #include<cmath> #include&l…
将无限小数化为分数,有一套简单的公式.使其轻松表示出来. 循环节 例如: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: 1258   Accepted: 379 Description Mike is frantically scrambling to finish his thesis at the last minute. He needs to assemble all his research notes into vaguely coherent form…
思路: 循环小数化分数,枚举所有可能的循环节,取分母最小的那个. 实现: #include <iostream> #include <cstdio> #include <string> using namespace std; const int INF = 0x3f3f3f3f; int gcd(int a, int b) { return !b ? a : gcd(b, a % b); } int lcm(int a, int b) { return a / gcd…
题目链接:http://poj.org/problem?id=1930 题目大意: 给一个无限循环小数(循环节不知),要求你输出当该小数所化成的最简分数分母最小时所对应的最简分数. AC思路: 完全没思路,思路来源于:码农场(http://www.hankcs.com/program/cpp/poj-1930-dead-fraction.html). 先来一点小学奥数知识...“连小学生都不如”说的就是我这种ORZ 纯循环 用9做分母,有多少个循环数就几个9,比如0.3,3的循环就是9分之3,0…
AOJ0005 http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0005 题意 给定两个数,求其最大公约数GCD以及最小公倍数LCM. 思路 求最大公约数一般用辗转相除法,然后就得到了最小公倍数. 更详细的分析参见我的博客文章: 数论--最大公约数和最小公倍数算法 代码 #include <iostream> #include <cstdio> #include <algorithm> using nam…
板子: ? gcd(b, a % b) : a; } POJ1930 题意:给你一个无限循环小数,给到小数点后 9 位,要求这个数的分数形式. 解法: 要想解决这道题,首先应该了解如何将循环小数化为分数: 一,纯循环小数化分数:循环节的数字除以循环节的位数个 9 组成的整数.例如: $0.3333……=3/9=1/3$;$0.285714285714……=285714/999999=2/7$. 二,混循环小数:(例如:$0.24333333……$)不循环部分和循环节构成的的数减去不循环部分的差,…