範例程式碼 uva1200

//uva1200
#include <stdio.h>
#include <math.h>
void parse(char *s, int& A, int& B) {
    A = 0, B = 0;
    int i, g = 0, f = 0, neg = 1;
    for(i = 0; s[i]; i++) {
        if(s[i] == 'x') {
            if(g)
                A += neg*f;
            else
                A += neg;
            g = 0, f = 0, neg = 1;
        } else {
            if(s[i] == '-') {
                if(g)
                    B += neg*f;
                g = 0, f = 0;
                neg = -1;
            } else if(s[i] == '+') {
                if(g)
                    B += neg*f;
                g = 0, f = 0;
                neg = 1;
            } else
                f = f * 10 + s[i]-'0', g = 1;
        }
    }
    if(g)
        B += neg*f;
}
int main() {
    int t, i;
    scanf("%d", &t);
    char s1[502], *s2;
    while(t--) {
        scanf("%s", s1);
        for(i = 0; s1[i]; i++) {
            if(s1[i] == '=') {
                s2 = s1 + i + 1;
                s1[i] = '\0';
                break;
            }
        }
        int la, lb, ra, rb;
        parse(s1, la, lb);
        parse(s2, ra, rb);
        if(la == ra && lb == rb)
            puts("IDENTITY");
        else if(la == ra && lb != rb)
            puts("IMPOSSIBLE");
        else
            printf("%d\n", (int)floor((double)(rb - lb)/(la - ra)));
    }
    return 0;
}