Php 在阶乘结果中计数0位,无内存异常

Php 在阶乘结果中计数0位,无内存异常,php,cakephp,math,logic,mathematical-optimization,Php,Cakephp,Math,Logic,Mathematical Optimization,我想在阶乘数的十进制结果后找到0位,而不使用字符串和bulit函数 For e.g. Number Factoial result count of 0 occured after nums 1! = 1 => 0 5! = 120

我想在阶乘数的十进制结果后找到0位,而不使用字符串和bulit函数

 For e.g.
 Number                     Factoial result         count of 0 occured after nums
   1!                         = 1                                     => 0
   5!                         = 120                                   => 1
   10!                        = 3628800                               => 2
   15!                        = 1307674368000                         => 3
根据最后一列,我想找出最后一个数字“0”的总计数。在php中没有内存异常


提前感谢

我使用
substr
为您提供了一个函数。你可以试试这个

function countLastZero($num){
    $count = 0;
    while(strlen($num) > 0){
        $las = substr($num, -1);
        if($las == 0){
            $count++;
            $num = substr($num, 0, strlen($num) - 1);
        }else{
            break;
        }
    }
    return $count;
}

echo countLastZero(1307674368000); //output 3

那你有什么问题?计算阶乘还是计算零?这两种方法都不应该导致内存异常,除非你在做一些奇怪的事情,比如递归!对于哪些输入,您的内存不足?我在计算数字零时遇到问题。它应该为任何数字运行。那么您是如何尝试计算零的?显示代码@道格拉萨谢谢你。我注意到了&更新了答案!