用C / C ++编程来计算数字阶乘中的尾随零?
通过对阶乘数中的尾随零进行计数是通过对数的因子中的2s和5s进行计数来完成的。因为2*5给出10,它在数字的阶乘后是0。
示例
阶乘7=5040,后跟0的数目为1。
根据我们的逻辑7!=2*3*4*5*6*7,它具有32s和15s,因此尾随0的数目为1。
#include <iostream> using namespace std; int main() { int n = 45; int count = 0; for (int i = 5; n / i >= 1; i *= 5) count += n / i; cout<<"No of trailing 0s in " << n<< "! is " << count; return 0; }
输出结果
No of trailing 0s in 24! is 10