用string存储大数
#include <cmath> #include <iostream> using namespace std; int main() { string n; while (cin >> n && n != "0") { // 注意 while 处理多个 case int skew = 0; int len = n.size(); for (int i = 0; i < n.size(); i++,len--){ skew += (n[i] - '0') * (pow(2,len)-1); } cout << skew << endl; } } // 64 位输出请用 printf("%lld")