C解决输入一个分数样式的数,将其化为最简分式
举例输入1:
60/120
举例输出1:
1/2
举例输入2:
120/120
举例输出1:
1
思路:
1、先判断divident, divisor是否相等,若相等,则输出1
2、若不相等,利用辗转相除法找最大公约数,都除最大公约数后输出
代码:
#include<stdio.h>
#include<math.h>
#include<stdbool.h>
#include<stdlib.h>
// 利用辗转相除法,找到最大公约数
int findGY(int a, int b) {
while (b != 0) {
int t = a % b;
a = b;
b = t;
}
return a;
}
int main()
{
/*
* 输入一个divident/divisor,将其化简为最简分式
* 先判断divident, divisor是否相等,若相等,则输出1
* 若不相等,则找最大公约数,都除最大公约数后输出
*/
int divident, divisor;
scanf_s("%d/%d", ÷nt, &divisor);
if (divident == divisor) {
printf("1\n");
}
else {
int t = findGY(divident, divisor);
printf("%d/%d", divident / t, divisor / t);
}
return 0;
}
运行结果截图: