确定阶乘函数(javascript)的尾随零数

确定阶乘函数(javascript)的尾随零数,javascript,Javascript,我正在编写一个函数,它返回阶乘的尾随零数。似乎零的数量从0开始增加!每5个正增量,但每25个增量增加1个零。问题是,当我传入像1000这样的数字时,它应该返回249,但它返回240。我错过什么了吗 我几乎肯定有更好的方法来写这个,但希望有人能告诉我我目前的函数缺少什么 注意:此函数不能计算实际阶乘来确定尾随零的数量 函数零(n){ 常数外零=n/25 常数零=n/5 如果(额外零>=1){ 返回零+数学楼层(额外零) }否则{ 返回数学楼层(零) } } console.log(零(0),0)

我正在编写一个函数,它返回阶乘的尾随零数。似乎零的数量从0开始增加!每5个正增量,但每25个增量增加1个零。问题是,当我传入像1000这样的数字时,它应该返回249,但它返回240。我错过什么了吗

我几乎肯定有更好的方法来写这个,但希望有人能告诉我我目前的函数缺少什么

注意:此函数不能计算实际阶乘来确定尾随零的数量

函数零(n){
常数外零=n/25
常数零=n/5
如果(额外零>=1){
返回零+数学楼层(额外零)
}否则{
返回数学楼层(零)
}
}
console.log(零(0),0);
控制台日志(0(5),1);
控制台日志(0(6),1);
控制台日志(0(30),7);
控制台日志(0(60),14);
console.log(零(1000),249);//缺少9个零?
似乎零的数量从0开始增加!每5个正增量,但每25个增量增加1个零

你说得对,但请把这句话再读一遍。你看到图案了吗

它还将每125和625个增量增加一个0,等等。您需要基于5的幂进行泛化

const zeros=(n)=>{
设功率=1;
设totalZeros=0;
而(n>5**功率){
总零+=数学下限(n/(5**次方));
power++;
}
返回全零;
};
console.log(零(0),0);
控制台日志(0(5),1);
控制台日志(0(6),1);
控制台日志(0(30),7);
控制台日志(0(60),14);

控制台日志(0(1000),249)
您的主要想法是什么,将
函数编写成这样?“额外零”代表什么?背后的逻辑是什么?啊,它增加了一倍,非常好,谢谢<代码>设总零=0;对于(让power=5;power也可以工作,并且可能更具可读性。