再加總,
最後output即可。
/* ACM 575 * mythnc * 2011/10/27 09:21:55 * run time: 0.004 */ #include <stdio.h> #define MAXARY 35 void reverse(char *s); int main(void) { int sum, i, k; char seq[MAXARY]; while (scanf("%s", seq)) { if (seq[0] == '0' && seq[1] == '\0') return 0; reverse(seq); for (sum = i = 0, k = 1; seq[i] != '\0'; i++) { k *= 2; sum += (seq[i] - '0') * (k - 1); } printf("%d\n", sum); } } /* reverse: reverse seq s */ void reverse(char *s) { int i, j; char tmp; for (j = 0; s[j] != '\0'; j++) ; for (j--, i = 0; i < j; i++, j--) { tmp = s[i]; s[i] = s[j]; s[j] = tmp; } }
沒有留言:
張貼留言