<?php
//estou transformando divisor negativo em positivo antes do loop e depois do loop troco o sinal de volta
//quando o dividendo é negativo o mesmo método para o divisor não funciona
//revisar/apagar linhas 30 ~36
//preciso contemplar 3 casos: (quando dividendo ou divisor forem negativos ou quando ambos forem negativos)
//quando -DIVISOR e -DIVIDENDO: +quociente -resto
//quando +DIVISOR e -DIVIDENDO: -quociente -resto
//quando -DIVISOR e +DIVIDENDO: -quociente +resto
//esse while não funciona quando -DIVIDENDO for negativo
//--se após esses ajustes não funcionar limitar as entradas como no enunciado--
$dividendo = (int) trim(fgets(STDIN));
$divisor = (int) trim(fgets(STDIN));
$divisoes_realizadas = 0;
$resto = 0.0;
$dividendo_reduzido = $dividendo;
$divisor_negativo = null;
$dividendo_negativo =null;
//if($divisor < 0) {
//$divisor = -($divisor);
//$divisor_negativo = true;
//}
//if($dividendo_reduzido < 0) {
//$dividendo_reduzido = -($dividendo_reduzido);
//$dividendo_negativo = true;
//}
while ($dividendo_reduzido >= $divisor) {
$dividendo_reduzido = $dividendo_reduzido - $divisor;
$divisoes_realizadas++;
}
if ($divisor_negativo == true) {
$divisoes_realizadas = -($divisoes_realizadas);
}
if ($dividendo_negativo == true) {
$dividendo_reduzido = -($dividendo_reduzido);
}
$resto = $dividendo_reduzido;
$dividendo_reduzido = (int) $dividendo_reduzido;
$divisoes_realizadas = (int) $divisoes_realizadas;
echo $divisoes_realizadas . "\n";
echo $dividendo_reduzido;
?>
To embed this project on your website, copy the following code and paste it into your website's HTML: