#include <iostream>
#include <string>
#include <cmath>
#include <exception>
using namespace std;
int bintodec(string binary, unsigned int i = 0)
{
int tot = 0;
if (i < binary.length())
{
if (binary[i] == '1')
tot = pow(2, i);
else if (!binary[i] == '0')
throw "String is not formatted in binary";
return tot + bintodec(binary, ++i);
}
return tot;
}
int main() {
string binary = "1011";
int dec = bintodec(binary);
cout << dec << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8Y21hdGg+CiNpbmNsdWRlIDxleGNlcHRpb24+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgYmludG9kZWMoc3RyaW5nIGJpbmFyeSwgdW5zaWduZWQgaW50IGkgPSAwKQp7CglpbnQgdG90ID0gMDsKCWlmIChpIDwgYmluYXJ5Lmxlbmd0aCgpKQoJewoJCWlmIChiaW5hcnlbaV0gPT0gJzEnKQoJCQl0b3QgPSBwb3coMiwgaSk7CgkJZWxzZSBpZiAoIWJpbmFyeVtpXSA9PSAnMCcpCgkJCXRocm93ICJTdHJpbmcgaXMgbm90IGZvcm1hdHRlZCBpbiBiaW5hcnkiOwoJCXJldHVybiB0b3QgKyBiaW50b2RlYyhiaW5hcnksICsraSk7Cgl9CglyZXR1cm4gdG90Owp9CgppbnQgbWFpbigpIHsKCXN0cmluZyBiaW5hcnkgPSAiMTAxMSI7CglpbnQgZGVjID0gYmludG9kZWMoYmluYXJ5KTsKCWNvdXQgPDwgZGVjIDw8IGVuZGw7CglyZXR1cm4gMDsKfQ==