
22.04.2009, 21:20
|
|
Постоянный
Регистрация: 30.08.2007
Сообщений: 773
С нами:
9840758
Репутация:
808
|
|
Вообще-то, для этого не нужно считать факториал.
Количество нулей можно найти хоть на бумажке, т.к. ноль образуется из произведения 2 * 5, двойки всегда в избытке.
PHP код:
function countZeroes($n)
{
$base = 5;
$power = 1;
$amount = 0;
while($power < $n)
{
$amount += floor($n / $power *= $base);
}
return $amount;
}
echo countZeroes(13000); // 3248
Скорее всего это вообще решается без циклов, одним выражением.
Последний раз редактировалось astrologer; 22.04.2009 в 21:25..
|
|
|