<?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;
?>

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: