codeforces 9C

来源:互联网 发布:博威电力软件 编辑:程序博客网 时间:2024/06/05 15:42

题目大意:给出数n(1<=n<=10^9),求不超过n,只由0、1构成的数的个数。

分析:

1位数:1

2位数:10、11

3位数:100、101、110、111

……

即有:

k位数:a、b

k+1位数:a*10,a*10+1,b*10,b*10+1。

 

#include<bits/stdc++.h>using namespace std;int ans=0;void get(int x,int n){    if(x>n) return;    ++ans;    get(10*x,n);    get(10*x+1,n);}int main(){    int n;    cin>>n;    get(1,n);    cout<<ans<<endl;    return 0;}


 

0 0