您的位置:首页 > 其它

cf9C. Hexadecimal's Numbers

2016-05-21 07:51 387 查看
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-n中有多少数仅由0和1组成

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<list>
#include<queue>
#include<vector>
using namespace std;
const int maxn=10010;
long long ans=0;
void dfs(long long n,long long num,long long cnt){
if(num>n)return ;
if(cnt==0){
ans++;return ;
}
dfs(n,num*10+1,cnt-1);dfs(n,num*10,cnt-1);
}
int main()
{
long long i,j,k,n;
scanf("%lld",&n);
long long temp=n;int cnt=0;
while(temp){
temp/=10;cnt++;
}
for(i=1;i<cnt;++i){
ans=ans+(1<<(i-1));
}
dfs(n,1,cnt-1);
printf("%lld\n",ans);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  cf9C. Hexadecimals N