zoukankan      html  css  js  c++  java
  • poj1930 Dead Fraction

    思路:

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

    实现:

     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 = 0;
    22     for (int i = 0; i < n; i++)
    23     {
    24         res += s[i] - '0';
    25         if (i != n - 1)
    26             res *= 10;
    27     }
    28     return res;
    29 }
    30 
    31 int main()
    32 {
    33     string s;
    34     while (cin >> s, s != "0")
    35     {
    36         s = s.substr(2, s.length() - 5);
    37         int n = s.length();
    38         int minn = INF;
    39         int minm = 0;
    40         for (int i = 0; i < n; i++)
    41         {
    42             int x = toNum(s.substr(i, n - i));
    43             int y = 9;
    44             for (int j = 0; j < n - i - 1; j++)
    45             {
    46                 y *= 10;
    47                 y += 9;
    48             }
    49             for (int j = 0; j < i; j++)
    50             {
    51                 y *= 10;
    52             }
    53             int p = toNum(s.substr(0, i));
    54             int q = 1;
    55             for (int j = 0; j < i; j++)
    56             {
    57                 q *= 10;
    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 0;
    73 }
  • 相关阅读:
    核心动画03-图标抖动.mp4
    核心动画02-CAKeyframeAnimation帧动画
    核心动画01-CABasicAnimation
    CALayer参考文献
    CALayer04-自定义图层
    CALayer03-隐式动画
    CALayer02-创建新图层
    iOS开发中的网络请求
    IT教育课程考评系统开发-06
    IT教育课程考评系统开发-05
  • 原文地址:https://www.cnblogs.com/wangyiming/p/6591184.html
Copyright © 2011-2022 走看看