编程之美的题目

最近在看编程之美,对于上面几道题简单整理下来,便于以后查看

1.求二进制中1的个数

          (1)根据二进制数的换算方法,一个数除以2,原来的数字减少一个0,如果结果有余数,则说明当前位置是1

           (2)用二进制数与1,如果结果是1,表示最后一位是1,然后数字右移一位,循环操作

           (3)V&(V-1)

2.阶乘问题

给定一个整数N,N的阶乘末尾有多少个0.

N!=2(X)*3(Y)*5(Z)*….

10=2*5

N=K*10(M)  M之和X和Z有关,能被2整除的数出现的频率比能被5整除的数出现的频率高的多。

因此求Z

求N!二进制数的最低位1的位置。也就是N!含有质因数2的个数+1

二进制数除以2,若余数为0右移一位。

 

    原文作者:syqhit
    原文地址: https://blog.csdn.net/syqhit/article/details/51445999
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞