SPOJ_2157
其实由于解只有一组,可以将machula所在的数看成一整个未知数而不是只将machula看成未知数,这样就可以方便得转化成一个A+B或者A-B的问题了。
#include#include #include #define MAXD 110int right, ans, rn;char a[MAXD], b[MAXD], c[MAXD];bool machula(char *str){ int i; for(i = 0; str[i]; i ++) if(isalpha(str[i])) return true; return false;}void solve(){ int x, y; char op[5]; scanf("%s", a); scanf("%s", op); scanf("%s", b); scanf("%s", op); scanf("%s", c); if(machula(a)) { sscanf(b, "%d", &x), sscanf(c, "%d", &y); ans = y - x; printf("%d + %s = %s\n", ans, b, c); } else if(machula(b)) { sscanf(a, "%d", &x), sscanf(c, "%d", &y); ans = y - x; printf("%s + %d = %s\n", a, ans, c); } else { sscanf(a, "%d", &x), sscanf(b, "%d", &y); ans = x + y; printf("%s + %s = %d\n", a, b, ans); }}int main(){ int t; scanf("%d", &t); while(t --) solve(); return 0;}