Php 在阶乘结果中计数0位,无内存异常
我想在阶乘数的十进制结果后找到0位,而不使用字符串和bulit函数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
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
那你有什么问题?计算阶乘还是计算零?这两种方法都不应该导致内存异常,除非你在做一些奇怪的事情,比如递归!对于哪些输入,您的内存不足?我在计算数字零时遇到问题。它应该为任何数字运行。那么您是如何尝试计算零的?显示代码@道格拉萨谢谢你。我注意到了&更新了答案!