题目描述
编写程序,要求用户输入一个分数,然后将其约分为最简分式:
6/12
1/2输入
输入正整数的分子和分母,格式为:分子/分母。
输出
输出最简分式。
样例输入
6/12
样例输出
1/2
提示
为了把分数约分为最简分式,首先计算分子和分母的最大公约数,然后分子和分母都除以最大公约数。求最大公约数的经典算法是Euclid算法,方法如下:分别让变量m和n存储两个数的值。如果n为0,那么停止操作,m中的值是最大公约数(GCD);否则计算m除以n的余数,把n保存到m中,并把余数保存到n中。然后重复上述过程,每次都先判定n是否为0。
#include <stdio.h>
int main(void)
{
int a, b, m, n, remainder;
scanf("%d/%d", &a, &b);
m = a;
n = b;
while (n > 0)
{
remainder = m % n;
m = n;
n = remainder;
}
printf("%d/%d", a / m, b / m);
}