05-1. 约分最简分式(15)
#include <stdio.h>
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;
}