#include <stdio.h> #include <string.h> void solve(int o[], int base) { int a[500] = {}; int i, j, k, len; int cnt = 0; len = 299; while(o[len] == 0) len--; do { for(i = 0, j = len; i < j; i++, j--) if(o[i] != o[j]) break; if(i >= j) break; cnt++; for(i = 0; i <= len; i++) a[i] = o[i]+o[len-i]; for(i = 0; i <= len+10; i++) { if(a[i] >= base) { a[i+1] += a[i]/base; a[i] %= base; } o[i] = a[i]; } len += 10; while(o[len] == 0) len--; } while(1); printf("%d", cnt); } int main() { char s[105]; while(scanf("%s", &s) == 1) { int i, j, k, len = strlen(s), base = 0; for(i = 0; i < len; i++) { if(s[i] <= '9') s[i] -= '0'; else s[i] -= 'A'-10; if(s[i] > base) base = s[i]; } if(base == 0) base = 1; for(i = 15; i > base; i--) { if(i != 15) printf(" "); int o[500] = {}; for(j = len-1, k = 0; j >= 0; j--, k++) o[k] = s[j]; solve(o, i); } for(i = base; i >= 2; i--) { if(i != 15) printf(" "); printf("?"); } puts(""); } return 0; }
2012年12月24日 星期一
ITSA16
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言