输入一个小于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; }