NYOJ 954 求N!二进制末尾几个0
题目地址:
NYOJ 954
题意:
中文题不解释。
分析:
即是求N!二进制末尾几个0,换句话就是求N!的因子有几个2。
具体做法跟POJ 1401一样,题解见:POJ 1401 && ZOJ 2202 Factorial 阶乘N!的末尾零的个数
代码:
/*
* Author: illuz <iilluzen[at]gmail.com>
* File: 954.cpp
* Create Date: 2014-05-26 20:31:42
* Descripton:
*/
#include <cstdio>
int n, ans;
int main()
{
while (~scanf("%d", &n)) {
ans = 0;
while (n != 0) {
ans += n / 2;
n /= 2;
}
printf("%d\n", ans + 1);
}
return 0;
}

该博客介绍了NYOJ 954题目的解决方案,讨论了如何确定N!(N的阶乘)在二进制表示中末尾零的数量。关键在于计算N!中2的因子个数,与5的因子个数相等,因为每个因子10会在二进制末尾贡献一个0。博客提到了与POJ 1401和ZOJ 2202题目的相似性,并链接到相关题解。
4974

被折叠的 条评论
为什么被折叠?



