题目

源地址:

http://poj.org/problem?id=1565

理解

不难,按照规则计算即可,注意大数的处理。

代码

#include <iostream>
#include <cstring>
using namespace std;

int main(int argc, char const *argv[])
{
    char num[35];
    while (cin >> num && num[0] != '0')
    {
        unsigned int pow = 1, sum = 0;
        for (int i = strlen(num) - 1; i >= 0; i --)
        {
            pow *= 2;
            sum += (num[i] - '0') * (pow - 1);
        }
        cout << sum << endl;
    }
    return 0;
}

更新日志

  • 2014年08月03日 已AC。