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);
}
}