N!
时间限制:1000 ms | 内存限制:65535 KB
难度:3
描述
阶乘(Factorial)是一个很有意思的函数,但是不少人都比较怕它。现在这里有一个问题,给定一个N(0<0<1000000000),求N!的二进制表示最低位的1的位置(从右向左数)。
输入本题有多组测试数据,每组数据一个正整数N(0<0<1000000000),以EOF结束输出求N!的二进制表示最低位的1的位置(从右向左数)。一组数据占一行。样例输入1
2
3
4
样例输出1
2
2
4
#include<stdio.h>
int main(){
int t,i;
while(scanf("%d",&t)!=EOF){
int sum=0;
for(i=2;i<=t;i*=2){
sum+=t/i;
}
sum++;
printf("%d\n",sum);
}
return 0;
}