本来以为要用到高精度,因为数很大,结果long long也就过了

#include <iostream>
#include <string>
#include <algorithm>
#include <math.h>

using namespace std;

int main(){
	string skew;
	while(cin >> skew){
		if(skew == "0")break;
		long long ans = 0;
		for(int i = skew.size() - 1;i >= 0;i --){
			ans += (skew[i] - '0') * (pow(2,skew.size() - i) - 1);
		}
		cout << ans << endl;
		
	}
	return 0;
}