1 条题解
-
2
模拟计算过程即可。
#include <bits/stdc++.h> using namespace std; int a,b,c,d,gcd,lcm; string s,A,B,C,D; char opt; int main(){ //记得在提交时将编译器改为C++14!!!否则无法使用stoi和__gcd函数 cin>>s; int i=0; for (;s[i]!='/';i++){ A+=s[i]; } for (i++;s[i]!='+'&&s[i]!='-';i++){ B+=s[i]; } opt=s[i]; for (i++;s[i]!='/';i++){ C+=s[i]; } for (i++;i<s.size();i++){ D+=s[i]; } a=stoi(A);//你也可以手写stoi函数 b=stoi(B); c=stoi(C); d=stoi(D); //求出分子、分母和运算符 gcd=__gcd(b,d);//可手写 lcm=b*d/gcd; a*=lcm/b; c*=lcm/d; b=lcm; //通分 if (opt=='+'){ a+=c; }else{ a-=c; } if (a<0){//处理负数 a=-a; cout<<'-'; } if (a%b==0){//处理整数 cout<<a/b; return 0; } gcd=__gcd(a,b);//约分 cout<<a/gcd<<'/'<<b/gcd; return 0; }
- 1
信息
- ID
- 333
- 时间
- 1000ms
- 内存
- 16MiB
- 难度
- 2
- 标签
- 递交数
- 37
- 已通过
- 25
- 上传者