Перевод из десятичной дроби в периодическую дробь. Функция.

<?php 
function period($numerator,$denominator){ 
   $array=array(); 
   $modulo=$numerator%$denominator; 
   $counter=1; 
   while($modulo!=0){ 
      if($array[$modulo-1]!=0)break; 
      $array[$modulo-1]=$counter; 
      $modulo*=10; 
      $explode=explode('.',$modulo/$denominator); 
      $period.=$explode[0]; 
      $modulo%=$denominator; 
      $counter++; 
   } 
   if($modulo!=0){ 
      $part=explode('.',$numerator/$denominator); 
      return $part[0].'.'.substr($period,0,$array[$modulo-1]-1).'('.substr($period,$array[$modulo-1]-1).')'; 
   } 
   else return $numerator/$denominator; 
} 
echo period(3870,36).'<br>'; 
echo period(397,259).'<br>'; 
echo period(183498,36).'<br>'; 
echo period(333,496); 
?>

Результат работы функции:
107.5
1.(532818)
5097.1(6)
0.6713(709677419354838)

Урок закончен.
Теги:
десятичная дробь, периодическая дробь
Добавлено: 24 Мая 2018 20:40:41 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...