View Code of Problem 3494

#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.


Back to problem 3494