#include <stdio.h> int cal(int a, int b) { if (b) while ((b %= a) && (a %= b)); return a + b; } int main() { int a1, a2, b1, b2; char op; while (scanf("%d/%d%c%d/%d", &a1, &a2, &op, &b1, &b2) != EOF) { if (a2 == b2) { if (op == '+') { int lol = cal(a1 + b1, a2); int a, b; a = (a1 + b1) / lol; b = a2 / lol; double result = a * 1.0 / b; if (result == a / b) printf("%d\n", a / b); else printf("%d/%d\n", a, b); } if (op == '-') { if (a1 == b1 && a2==b2) { printf("0\n"); continue; } int lol = cal(a1 - b1, a2); int a, b; a = (a1 - b1) / lol; b = a2 / lol; double result = a * 1.0 / b; if (result == a / b) printf("%d\n", a / b); else printf("%d/%d\n", a, b); } } else { if (op == '+') { int lol = cal(a1 * b2 + b1 * a2, a2 * b2); int a, b; a = (a1 * b2 + b1 * a2) / lol; b = a2 * b2 / lol; double result = a * 1.0 / b; if (result == a / b) printf("%d\n", a/b); else printf("%d/%d\n", a, b); } if (op == '-') { if (a1 == b1 && a2 == b2) { printf("0\n"); continue; } int lol = cal(a1 * b2 + b1 * a2, a2 * b2); int a, b; a = (a1 * b2 - b1 * a2) / lol; b = a2 * b2 / lol; double result = a * 1.0 / b; if (result == a / b) printf("%d\n", a / b); else printf("%d/%d\n", a, b); } } } return 0; } |
Double click to view unformatted code.