约分分数为最简分式

题目描述

编写程序,要求用户输入一个分数,然后将其约分为最简分式:
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);
}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值