N!最低位1的位置

来源:互联网 发布:问卷星的数据怎么导出 编辑:程序博客网 时间:2024/06/05 18:34
/* *问题:正整数N的阶乘是N!,求N!的二进制数的最低位1的位置 *思路:求最低位1的位置 => 最低位1的位置=N!的二进制数的结尾0的个数 + 1 => N!的二进制数的结尾0的个数=N!中因数2的个数 *解法:N!中质因数2的个数 = N/2 + N/(2x2) + N/(2x2x2) + ... */#include <stdio.h>int count(N){int num = 0;while (N){num += N/2;N /= 2;}return num + 1;}int main(void){printf("%d\n", count(6));return 0;}

0 0