题解:题目中已给公式,用循环求解。
#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstring>
using namespace std;
const int N =50;
int main() {
char s[N];
int ans;
while (scanf("%s", s)) {
if (s[0] == '0')
break;
ans = 0;
int len = strlen(s);
for (int i = 0, j = len; i < len; i++, j--)
ans += (s[i] - '0') * (pow(2, j) - 1);
printf("%d\n", ans);
}
return 0;
}