05-1. 约分最简分式(15)

05-1. 约分最简分式(15)


#include 
void zzxcf(int *a, int *b)//使用辗转相除法:辗转相除法是求两个自然数的最大公约数的一种方法,也叫欧几里德算法。
//很好的算法啊 感谢前辈
{
        int tmp;
        tmp = (*a) % (*b);
        *a = *b;
        *b = tmp;
}
int main()
{
        int a, b;
        scanf("%d/%d", &a, &b);
        int aa = a, bb = b;
        if (!(aa % bb))//区别一种情况 防止 bb 为 aa的因数
        {
                b = bb;
        }
        else
        {
                do
                {
                        zzxcf(&a, &b);//执行算法
                }
                while (a % b);//判断余数是否为0
        }

        printf("%d/%d", aa / b, bb / b);//输出最简因式
        return 0;
}



你可能感兴趣的:(pat)