模拟
2024-07-04 19:01:20
发布于:上海
18阅读
0回复
0点赞
模拟即可。
根据小学知识:
scanf 可以同时输入数和符号,所以正负随分母。
注意逝项:
- 千万不要开 long long。
- 手写负数 千万不要特判符号。
- 千万不要边算边约分。
- 分母是 的情况不用特判。
- 只有一个非最简分数不要管它,不约分直接输出。
应该没人看不出来我在说反话吧。
#include <cstdio>
#include <algorithm>
#include <map>
using namespace std;
#define int long long
#define PRI(x) printf(#x" : %d\n",x)
inline int gcd(int a,int b){
a=abs(a),b=abs(b);
int r=a%b;
while(r){
a=b;
b=r;
r=a%b;
}
return b;
}
signed main(){
int a,b,c,d;
scanf("%lld/%lld",&a,&b);
while(scanf("%lld/%lld",&c,&d)==2){
a=a*d+b*c;
b=b*d;
int g=gcd(a,b);
a/=g;b/=g;
}
int g=gcd(a,b);
a/=g;b/=g;
if(b==1)printf("%lld",a);
else printf("%lld/%lld",a,b);
return 0;
}
这里空空如也
有帮助,赞一个