有限小数化为最简分数

Posted 夏午晴天

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有限小数化为最简分数相关的知识,希望对你有一定的参考价值。

/*

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

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;
}

以上是关于有限小数化为最简分数的主要内容,如果未能解决你的问题,请参考以下文章

小数怎么化成分数

python 将小数转化为百分数

怎么把小数化成分数的方法

无限循环小数化分数

SQL怎么把小数转换为百分比?

求大神帮忙写一个只允许是百分数的js正则表达式(从0%至100%,中间数字允许两位小数)。