1/8+3/8 1/4-1/2 1/3-1/3
1/2 -1/4 0
#include#include #include using namespace std; //不能用gcd遞歸gcd(int a,int b) a,b有可能小於0 int main() { int a,b,c,d,x,y,p; char o; while(~scanf("%d/%d%c%d/%d",&a,&b,&o,&c,&d)) { y=b*d; if(o=='+') x=a*d+b*c; else x=a*d-b*c; int p=max(x,y); for(int i=2;i<=sqrt(p);i++) { if(x%i==0&&y%i==0) { x/=i; y/=i; i=2; } //從2開始到他們的最大公約數成一個循環 } if(x==0||y==0) printf("0\n"); else if(y==1) printf("%d\n",x); else printf("%d/%d\n",x,y); } return 0; }