• hdu 1905 小数化分数2


    #include<iostream>
    #include<stdio.h>
    #include<algorithm>
    #include<iomanip>
    #include<cmath>
    #include<cstring>
    #include<vector>
    #include<stdlib.h>
    #define ll __int64
    #define pi acos(-1.0)
    using namespace std;
    int
    gcd(int a,int b)
    {

        int
    t;
        if
    (a<b) swap(a,b);
        while
    (b)
        {

            t=a;
            a=b;
            b=t%b;
        }

        return
    a;
    }

    int
    pows(int n)
    {

        int
    ans=1;
        while
    (n--)
            ans*=10;
        return
    ans;
    }

    int
    main()
    {

        int
    i,j,n,sum,t,pos1,pos2,pos3,a,b,c,len;
        string an;
        cin>>t;
        while
    (t--)
        {

            cin>>an;
            len=an.length();
            pos2=an.find('(',0);
            pos3=an.find(')',pos2);
            if
    (pos2<0)
            {

                a=0;
                for
    (i=2;i<len;i++)
                    a=a*10+an[i]-'0';
                b=pows(len-2);
            }

            else

            {

                a=0;
                for
    (i=2;i<pos2;i++)
                    a=a*10+an[i]-'0';
                c=0;
                for
    (i=pos2+1;i<pos3;i++)
                    c=c*10+an[i]-'0';
                b=pows(pos3-pos2-1);
                sum=a*b+c;
                a=sum-a;
                b=(b-1)*pows(pos2-2);
            }

            c=gcd(a,b);
            cout<<a/c<<'/'<<b/c<<endl;
        }

        return
    0;
    }

  • 相关阅读:
    循环语句
    流程控制
    特殊的赋值运算符
    位运算符
    运算符
    八种基本类型
    cmd基础命令
    springboot项目部署到tomcat步骤以及常见问题
    【算法问题】如何实现大整数相加
    【算法问题】删除k个数字后的最小值
  • 原文地址:https://www.cnblogs.com/xin-hua/p/3211725.html
Copyright © 2020-2023  润新知