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; }
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; }