在没有内存异常的情况下,计算阶乘结果中的0位数字


count 0 digits places in factorial result without memory exception

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

 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"的总数。没有内存异常

Thanks in advance

我提供了一个使用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