func_code_string: #include <bits/stdc++.h>   using namespace std;   char str[1000005];   int num[1000005];   int main() {     int i, j, len, ans;     while (scanf( %s , str) != EOF) {       len = strlen(str);       for (i = 0, j = len - 1; i < j; i++, j--) {         swap(str[i], str[j]);       }       str[len] =  0 ;       memset(num, 0, sizeof(num));       ans = 0;       for (i = 0; i <= len; i++) {         if (str[i] ==  1 ) {           for (j = i + 1; j <= len; j++) {             if (str[j] ==  0 ) break;           }           if (j != i + 1) {             num[j] = 1;             num[i] = -1;             str[j] =  1 ;           } else {             num[i] = 1;           }           i = j - 1;         }       }       for (i = 0; i <= len; i++) {         if (num[i]) ans++;       }       printf( %d n , ans);       for (i = 0; i <= len; i++) {         if (num[i]) {           if (num[i] == 1) printf( + );           if (num[i] == -1) printf( - );           printf( 2^%d n , i);         }       }     }     return 0;   }   