一道水题,dfs暴力就行。
#include <stdio.h>
int ans = 0, num;
void dfs(int n)
{
if(n > num)
return;
dfs(n * 10);
dfs(n * 10 + 1);
if(n <= num)
ans++;
}
int main(int argc, char *argv[])
{
while(~scanf("%d", &num))
{
dfs(1);
printf("%d\n", ans);
}
return 0;
}