题目描述
求N!的二进制表示中最低位1的位置。
输入
一个正整数N(0 <N <= 3000 )
输出
一个整数。
样例输入
4
样例输出
4
#include<stdio.h>
int main()
{
int n, res=0;
scanf("%d",&n);
while(n) {
res += n/2;
n /= 2;
}
printf("%d\n",res+1);
return 0;
}
想法一样,但这种处理方式更高明。
#include<stdio.h>
int main()
{
int n, res=0;
scanf("%d",&n);
while(n) {
res += n/2;
n /= 2;
}
printf("%d\n",res+1);
return 0;
}