給出一個數,判斷不大於它的數中有多少個只由0,1組成
// 這種方法針對只給出一個數據非常容易,僅僅是單純的DFS
#include<iostream>
#include<stdio.h>
#include<map>
using namespace std;
long long int ans = 0;
map<int ,int >vis;
int n;
void DFS(int x)
{
if(x > n)
return;
if(vis[x] ==1)
return ;
ans ++;
DFS(x*10);
DFS(x*10+1);
}
int main()
{
cin>>n;
DFS(1);
cout<<ans<<endl;
return 0;
}