Now in Baidu WISE team
全部博文(150)
分类: C/C++
2013-11-19 22:37:11
设对于n位数, 满足条件的数目 最右一位是1的情况的集合为L(n), 最右一位是0的情况的集合是M(n)
当x=n+1 那么a.对于任意一个L(n)中的情况, 后面补0
b.对于任意一个M(n)中的情况, 后面补0
c.对于任意一个M(n)中的情况, 后面补1
得到最后一位是0的情况(a & b) : M(n+1) = L(n)+ M(n)
最后一位是1的情况(c) : L(n+1) = M(n)
所以
f(n+1) = L(n)+ M(n) + M(n) = f(n) + L(n-1)+M(n-1) = f(n) + f(n-1)