N!结果二进制表示中1的个数 2.2

个数等于2的因子数+1

   

类似于求一个数二进制表示中1的个数

   

有三种求法,第一种是不断除2,也就是右移,但原问题对负数不能这么做,现在N!结果中不为负数,所以不存在这种问题

   

第二种求法是不断对index乘以2,然后对相应位求与

   

第三种是x&(x-1)不断的判断

   

现提供第四种方法,该方法只适用于阶乘

   

   

posted @ 2015-04-01 22:08  keedor  阅读(104)  评论(0编辑  收藏  举报