小数转化为分数
Posted robin5
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小数转化为分数相关的知识,希望对你有一定的参考价值。
输入一个小于1的正小数,分别输出最简分数的分子和分母。
此代码的目的是简单快速的求出有限位小数对应的最简真分数。
C语言代码如下:
# include <stdio.h> # include <string.h> // 判断两个整数的最大公约数是否为1 int is_prime(int a, int b) { while (a != b) { a>b?(a-=b):(b-=a); } return b; } int main(void) { char ch[50]; int a=0, b=1; int i = 0, flag=0,temp; gets(ch); // 读取尾数长度 while (ch[i]) { if (flag == 1) { a += (ch[i]-‘0‘); a *= 10; b *= 10; } if (flag==0 && ch[i]==‘.‘) flag = 1; i++; } a /= 10; temp = is_prime(a,b); while (1 != temp) { a /= temp; b /= temp; temp = is_prime(a,b); } printf("%d %d ",a,b); return 0; }
以上是关于小数转化为分数的主要内容,如果未能解决你的问题,请参考以下文章