思路:

循环小数化分数,枚举所有可能的循环节,取分母最小的那个。

实现:

  1. #include <iostream>
  2. #include <cstdio>
  3. #include <string>
  4. using namespace std;
  5.  
  6. const int INF = 0x3f3f3f3f;
  7.  
  8. int gcd(int a, int b)
  9. {
  10. return !b ? a : gcd(b, a % b);
  11. }
  12.  
  13. int lcm(int a, int b)
  14. {
  15. return a / gcd(a, b) * b;
  16. }
  17.  
  18. int toNum(string s)
  19. {
  20. int n = s.length();
  21. int res = ;
  22. for (int i = ; i < n; i++)
  23. {
  24. res += s[i] - '';
  25. if (i != n - )
  26. res *= ;
  27. }
  28. return res;
  29. }
  30.  
  31. int main()
  32. {
  33. string s;
  34. while (cin >> s, s != "")
  35. {
  36. s = s.substr(, s.length() - );
  37. int n = s.length();
  38. int minn = INF;
  39. int minm = ;
  40. for (int i = ; i < n; i++)
  41. {
  42. int x = toNum(s.substr(i, n - i));
  43. int y = ;
  44. for (int j = ; j < n - i - ; j++)
  45. {
  46. y *= ;
  47. y += ;
  48. }
  49. for (int j = ; j < i; j++)
  50. {
  51. y *= ;
  52. }
  53. int p = toNum(s.substr(, i));
  54. int q = ;
  55. for (int j = ; j < i; j++)
  56. {
  57. q *= ;
  58. }
  59. int l = lcm(y, q);
  60. int tmp = l / y * x + l / q * p;
  61. int g = gcd(tmp, l);
  62. tmp /= g;
  63. l /= g;
  64. if (l < minn)
  65. {
  66. minn = l;
  67. minm = tmp;
  68. }
  69. }
  70. cout << minm << "/" << minn << endl;
  71. }
  72. return ;
  73. }

poj1930 Dead Fraction的更多相关文章

  1. uva 10555 - Dead Fraction)(数论)

    option=com_onlinejudge&Itemid=8&category=516&page=show_problem&problem=1496" st ...

  2. poj 1930 Dead Fraction(循环小数化分数)

    Dead Fraction Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 3478   Accepted: 1162 Des ...

  3. UVA 10555 - Dead Fraction(数论+无限循环小数)

    UVA 10555 - Dead Fraction 题目链接 题意:给定一个循环小数,不确定循环节,求出该小数用分数表示,而且分母最小的情况 思路:推个小公式 一个小数0.aaaaabbb... 表示 ...

  4. Dead Fraction [POJ1930]

    题意: 很有意思的一道题,,将一个无限循环小数转化成分母最小的精确分数值....,循环的部分不一定是最后一位. Sample Input 0.2... 0.20... 0.474612399... 0 ...

  5. POJ 1930 Dead Fraction

    POJ 1930 Dead Rraction 此题是一个将无限循环小数转化为分数的题目 对于一个数 x=0.abcdefdef.... 假设其不循环部分的长度为m(如abc的长度为m),循环节的长度为 ...

  6. Mathematics:Dead Fraction(POJ 1930)

    消失了的分式 题目大意:某个人在赶论文,需要把里面有些写成小数的数字化为分式,这些小数是无限循环小数(有理数),要你找对应的分母最小的那个分式(也就是从哪里开始循环并不知道). 一开始我也是蒙了,这尼 ...

  7. POJ 1930 Dead Fraction (循环小数-GCD)

    题意:给你一个循环小数,化成分数,要求分数的分母最小. 思路:暴力搜一遍循环节 把循环小数化分数步骤: 纯循环小数化分数 纯循环小数的小数部分可以化成分数,这个分数的分子是一个循环节表示的数,分母各位 ...

  8. poj1930 数论

    Dead Fraction Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 1258   Accepted: 379 Desc ...

  9. POJ 1930

    Dead Fraction Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 1762   Accepted: 568 Desc ...

随机推荐

  1. 【iOS系列】-iOS查看沙盒文件图文教程(真机+模拟器)

    [iOS系列]-iOS查看沙盒文件图文教程(真机+模拟器) 1:模拟器 1.1 方法1: 程序中打印一下的地址,能直接前往沙盒路径. NSString *path = [NSSearchPathFor ...

  2. 为Html.EditorForModel自定义模版

    对于MVC视图渲染来说,大家应该不会陌生,但对于模型的渲染,不知道是否听说过,主要是说Model通过它属性的相关特性(DataType,UIHint)来将它们自动渲染到View上,这是一个比较不错的技 ...

  3. mysql 查看编码方式

    一. 查看数据库的字符集 show variables like 'character\_set\_%'; 输出: +--------------------------+--------+ | Va ...

  4. myeclipse 8.6安装SVN插件

    方法二: 安装subclipse, SVN 插件   1.从官网下载site-1.6.9.zip文件,网址是:subclipse.tigris.org,    2.从中解压出features与plug ...

  5. Ubuntu Nginx uwsgi django 初试

    /************************************************************************************** * Ubuntu Ngi ...

  6. I.MX6 DNS 查看、修改方法

    /************************************************************************** * I.MX6 DNS 查看.修改方法 * 说明 ...

  7. BZOJ3224:普通平衡树(splay练习)

    您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作:1. 插入x数2. 删除x数(若有多个相同的数,因只删除一个)3. 查询x数的排名(若有多个相同的数,因输出最小的排名)4. ...

  8. 查看html元素绑定的事件与方法 visual Event 插件

    WEB标准提倡结构.表现和行为相 分离,现在越来越多采用这种表现和行为的方式,但它也为我们开发调试带来一些问题,网页载入一堆JavaScript,,我们很难搞清楚最后在哪些元素的哪个动作绑定了事件,尤 ...

  9. linq to EF分组查询 group by 的使用

    第一种:查询表达式语法: IQueryable<EnrollmentDateGroup> data = from student in db.Students group student ...

  10. bootstrap复选框和单选按钮

    复选框和单选按钮标签包含在<Label>标签中<div class="checkbox"> <label><input type=&quo ...