mirror of
https://github.com/m1ngsama/code4sk.git
synced 2025-12-25 02:56:17 +00:00
49 lines
1.4 KiB
C++
49 lines
1.4 KiB
C++
/* 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;
|
||
}
|