给定一个数字n,令x=n!,然后反复进行如下操作: 若x为偶数,则将x折半(x=x/2) 若x为奇数,则操作结束 在操作结束时,试求一共折半了多少次。 输入 一个数字n。(0<n<=100) 输出 折半的次数。,用C语言实现
时间: 2023-06-18 20:07:45 浏览: 177
C语言程序设计-求1到w之间的奇数之和;(w是大于等于100小于等于1000的整数).c
5星 · 资源好评率100%
以下是 C 语言实现:
```c
#include <stdio.h>
int main() {
int n, x, count = 0;
scanf("%d", &n);
x = 1;
for (int i = 1; i <= n; i++) {
x *= i;
}
while (x % 2 == 0) {
x /= 2;
count++;
}
printf("%d", count);
return 0;
}
```
思路:先计算出 n 的阶乘 x,然后不断判断 x 是否为偶数,若是则折半并计数,直到 x 为奇数时结束循环,输出计数器的值即为折半的次数。
阅读全文