5 条题解
-
0
#include<stdio.h> #include<stdlib.h> int gcd(int A,int B){//最大公约数 int temp; A=abs(A); B=abs(B); while(B!=0){ temp=B; B=A%B; A=temp; }return A; }int lcm(int c,int d){//最小公倍数 return c*d/gcd(c,d); } int main() { int a,b,c,d; char n; while(scanf("%d/%d%c%d/%d",&a,&b,&n,&c,&d)!=EOF){ int mu=lcm(b,d); int zi; if(n=='+'){ zi=a*(mu/b)+c*(mu/d);//分数分子相加减法(下同) }else{ zi=a*(mu/b)-c*(mu/d); }int same=gcd(zi,mu);//进行约分 zi=zi/same; mu=mu/same; if(zi==0){//分类讨论 printf("0\n"); }else if(mu==1){ printf("%d\n",zi); }else{ printf("%d/%d\n",zi,mu); } } return 0; }
信息
- ID
- 168
- 时间
- 3000ms
- 内存
- 128MiB
- 难度
- 7
- 标签
- (无)
- 递交数
- 700
- 已通过
- 158
- 上传者