示例#1
0
int main(int argc, char *argv[]) {
    long sum = 0;
    long i;

    for (i = 1 ; i < 1000000 ; i++) {
        char *baseStr = getBase2(i);
        char *baseRev = strdup(baseStr);
        char *numStr = malloc(7 * sizeof(char));
        sprintf(numStr, "%ld", i);
        char *numRev = strdup(numStr);

        reverse(baseRev);
        reverse(numRev);
        
        if (!strcmp(baseStr, baseRev) && !strcmp(numStr, numRev)) {
            sum += i;
        }

        free(baseStr);
        free(baseRev);
        free(numStr);
        free(numRev);
    }
    printf("sum: %ld\n", sum);
    return 0;
}
示例#2
0
int main (int argc, const char * argv[])
{
    in = fopen(path".in", "r");
    out = fopen(path".out", "w");
    
    char c;
    while ((c = fgetc(in)) != '\n') {
        int i = c - '0';
        base2[base2Length++] = i;
    }
    while ((c = fgetc(in)) != '\n') {
        int i = c - '0';
        base3[base3Length++] = i;
    }
    
    int x, y, i, j;
    
    for (x = 0; x < base2Length; x++) {
        int temp = base2[x];
        for (y = (temp + 1) % 2; y != temp; y = (y + 1) % 2) {
            base2[x] = y;
            for (i = 0; i < base3Length; i++) {
                int temp2 = base3[i];
                for (j = (temp2 + 1) % 3; j != temp2; j = (j + 1) % 3) {
                    base3[i] = j;
                    if (getBase2() == getBase3()) {
                        fprintf(out, "%d\n", getBase2());
                        return 0;
                    }
                }
                base3[i] = temp2;
            }
        }
        base2[x] = temp;
    }
    
    return 0;
}