zoukankan      html  css  js  c++  java
  • 有限小数化为最简分数

    /*

    请将有限小数化为最简分数。

    Input

    一个整数n 表示需要转化的小数个数; 接下来n行,每行有一个有限小数。(保证小数位数不超过9位)

    Output

    输出有n行,每行为小数对应的最简分数

    Sample Input

    2
    0.5
    0.4
    

    Sample Output

    1/2 2/5

    注意精度问题,数据保证不会有类似1.0的小数。

    */

    #include <cstdio>
    #include <iostream>
    #include <cstring>
    #include <algorithm>
    #include <cmath>
    using namespace std;
    int Gcd(int a,int b){
        if(a<b){
            int t;
            t = a;
            a = b;
            b = t;
        }
        return b!=0?Gcd(b,a%b):a;
    }
    char str[50],str2[50];
    int main() {
        int t,i,k,count,big,small,mul1,mul2,gcd,sum;
        cin>>t;
        while(t--)
            {
            cin>>str;
            count = 0;
            int len = strlen (str);
            for(i=0; i< len;i++){
                if(str[i]!='.'){
                    count++;

                }
                else{
                    break;
                }
            }

            mul1 = mul2 = 1;
            sum = big = small = 0;
            for(i=0; i<count; i++){//整数

                big = str[i]-'0'+ big*10;
                mul1 *= 10;
            }
            for(i=count+1; i<strlen(str); i++){ //小数

                small = str[i]-'0'+ small*10;
                mul2 *= 10;
            }

            big*=mul2;
            sum+=(big + small);
            gcd = Gcd(sum,mul2);
            cout<<sum/gcd<<'/'<<mul2/gcd<<endl;

        }
        return 0;
    }

  • 相关阅读:
    部分模块
    正则表达式和re模块
    软件开发的目录规范
    模块以及模块的导入
    迭代器、可迭代对象、迭代器对象、生成器、生成器表达式和相关的面试题
    内置方法补充
    递归、二分法、匿名函数和部分内置方法
    python的闭包和装饰器
    函数名本质、函数命名空间和作用域链
    函数简介和函数的结构分析
  • 原文地址:https://www.cnblogs.com/jxust-jiege666/p/6424503.html
Copyright © 2011-2022 走看看