C. Hexadecimal's Numbers

C. Hexadecimal's Numbers
time limit per test
1 second
memory limit per test
64 megabytes
input
standard input
output
standard output

One beautiful July morning a terrible thing happened in Mainframe: a mean virus Megabyte somehow got access to the memory of his not less mean sister Hexadecimal. He loaded there a huge amount of n different natural numbers from 1 to n to obtain total control over her energy.

But his plan failed. The reason for this was very simple: Hexadecimal didn't perceive any information, apart from numbers written in binary format. This means that if a number in a decimal representation contained characters apart from 0 and 1, it was not stored in the memory. Now Megabyte wants to know, how many numbers were loaded successfully.

Input

Input data contains the only number n (1 ≤ n ≤ 109).

Output

Output the only number — answer to the problem.

Examples
input
10
output
2
Note

For n = 10 the answer includes numbers 1 and 10.

 

由1 0 组成的数字,就是二进制数字的值!

把当前数字用10表示的最大数字,所代表的二进制的值就是答案。

 

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<sstream>
#include<algorithm>
#include<queue>
#include<deque>
#include<iomanip>
#include<vector>
#include<cmath>
#include<map>
#include<stack>
#include<set>
#include<fstream>
#include<memory>
#include<list>
#include<string>
using namespace std;
typedef long long LL;
typedef unsigned long long ULL;
#define MAXN 503
#define N 33
#define MOD 10000007
#define INF 1000000009
const double eps = 1e-9;
const double PI = acos(-1.0);
string str;
int main()
{
    cin >> str;
    bool f = false;
    for (int i = 0; i < str.size(); i++)
    {
        if (f) str[i] = '1';
        else if (str[i] > '1')
        {
            str[i] = '1';
            f = true;
        }
    }
        
    LL ans = str[str.size() - 1] - '0', bas = 1;
    for (int i = str.size() - 2; i >= 0; i--)
    {
        bas *= 2;
        ans = ans + (str[i] - '0')*bas;
    }
    cout << ans << endl;
    return 0;
}

 

posted @ 2017-08-02 15:26  joeylee97  阅读(212)  评论(0编辑  收藏  举报