code4sk/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第1次月考/约分最简分式.cpp
2023-12-15 22:38:26 +08:00

49 lines
1.4 KiB
C++
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/* 7-5 约分最简分式
分数 10
作者 翁恺
单位 浙江大学
分数可以表示为分子/分母的形式。编写一个程序要求用户输入一个分数然后将其约分为最简分式。最简分式是指分子和分母不具有可以约分的成分了。如6/12可以被约分为1/2。当分子大于分母时不需要表达为整数又分数的形式即11/8还是11/8而当分子分母相等时仍然表达为1/1的分数形式。
输入格式:
输入在一行中给出一个分数,分子和分母中间以斜杠/分隔12/34表示34分之12。分子和分母都是正整数不包含0如果不清楚正整数的定义的话
提示:
对于C语言在scanf的格式字符串中加入/让scanf来处理这个斜杠。
对于Python语言用a,b=map(int, input().split('/'))这样的代码来处理这个斜杠。
输出格式:
在一行中输出这个分数对应的最简分式,格式与输入的相同,即采用分子/分母的形式表示分数。如
5/6表示6分之5。
输入样例:
66/120
输出样例:
11/20
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB */
#include <stdio.h>
int main()
{
int a, b, c, d, r;
scanf("%d/%d", &a, &b);
c = a;
d = b;
if (a == b)
printf("1/1");
else
{
r = a % b;
for (; r != 0; r = a % b)
{
a = b;
b = r;
}
printf("%d/%d", c / b, d / b);
}
return 0;
}