2120: N!


2120: N!

时间限制: 1 Sec  内存限制: 64 MB
提交: 18  解决: 13
您该题的状态:已完成
[提交][状态][讨论版]

题目描述

阶乘(Factorial)是一个很有意思的函数,但是不少人都比较怕它。现在这里有一个问题,给定一个N(0<0<1000000000),求N!的二进制表示最低位的1的位置(从右向左数)。

输入

本题有多组测试数据,每组数据一个正整数N(0<0<1000000000),以EOF结束

输出

求N!的二进制表示最低位的1的位置(从右向左数)。一组数据占一行。

样例输入

<span style="color:#333333"><span style="color:black">1
2
3
4</span></span>

样例输出

<span style="color:#333333"><span style="color:black">1
2
2
4</span></span>

其实就是求n!因子里有多少个2。

AC代码: 

#include<stdio.h>
#include<string.h>
int main()
{
	int n;
	while(~scanf("%d",&n))
	{
		int sum=0;
		while(n)
		{
			sum+=n/2;
			n=n/2;
		}
		printf("%d\n",sum+1);
	}
}

猜你喜欢

转载自blog.csdn.net/qq_42709126/article/details/81355332
N!
n
N*