题目原文
题目描述
给定一个数字n,令x=n!,然后反复进行如下操作:
- 若x为偶数,则将x折半(x=x/2)
- 若x为奇数,则操作结束
在操作结束时,试求一共折半了多少次。
输入
一个数字n。(0<n<=100)
输出
折半的次数。
样例
输入样例1
5
输出样例1
3
AC代码
#include <stdio.h>
int main()
{
int n;
scanf("%d", &n);
int cnt = 0;
for (int i = 2; i <= n; i++)
{
int x = i;
while (x % 2 == 0)
{
cnt++;
x /= 2;
}
}
printf("%d", cnt);
return 0;
}