3v4l.org

run code in 200+ php & hhvm versions
Bugs & Features
<?php /** * Sabe-se que por trás de cada cometa há um OVNI. Esses OVNIs frequentemente buscam bons desenvolvedores aqui na Terra. Infelizmente só têm espaço para levar um grupo de devs por vez. Para a seleção, há um engenhoso esquema, da associação do nome do cometa ao nome do grupo, que possibilita a cada grupo saber se será levado ou não. * Os dois nomes, do grupo e do cometa, são convertidos em um número que representa o produto das letras do nome, onde "A" é 1 e "Z" é 26. Assim, o grupo "LARANJA" seria 12 * 1* 18 * 1 * 14 * 10 * 1 = 30240. Se o resto da divisão do número do grupo por 45 for igual ao resto da divisão do número do cometa por 45, então o grupo será levado. * Para os cometas e grupos abaixo, qual grupo NÃO será levado? * Cometa Grupo * Halley Amarelo * Encke Vermelho * Wolf Preto * Kushida Azul */ /** * Lista de cometas e grupos a serem verificados. */ $cometasGrupos = array( 'HALLEY' => 'AMARELO', 'ENCKE' => 'VERMELHO', 'WOLF' => 'PRETO', 'KUSHIDA' => 'AZUL' ); echo verificarCometas($cometasGrupos); /** * */ function verificarCometas($cometasGrupos) { foreach ($cometasGrupos as $cometa => $grupo) { $somaCometa = somarLetras($cometa); $somaGrupo = somarLetras($grupo); $mensagem = ''; if (! cometaSeraLevado($somaCometa, $somaGrupo)) { $mensagem = "O grupo '{$grupo}' não será levado!" . PHP_EOL; } } return $mensagem; } /** * Realiza a soma das letras de uma palavra. * * @param String $palavra * @return String */ function somarLetras($palavra) { if (!$palavra) { return 0; } $palavra = str_split($palavra); $total = 0; foreach ($palavra as $letra) { $numero = ord(strtoupper($letra)) - 64; $total = $total ? $total * $numero : $numero; } return $total; } /** * Verifica se um cometá será levado ou não. * * @param Int $cometa, Int $grupo * @return Boolean */ function cometaSeraLevado($cometa, $grupo) { $divisor = 45; $divisaoCometa = $cometa % $divisor; $divisaoGrupo = $grupo % $divisor; $valido = false; if ($divisaoCometa == $divisaoGrupo) { $valido = true; } return $valido; }
based on mVmu8
Output for 5.0.2 - 7.2.0
Output for 5.0.0 - 5.0.1
Notice: Use of undefined constant PHP_EOL - assumed 'PHP_EOL' in /in/oALGJ on line 39
Output for 4.4.5 - 4.4.9
Fatal error: Call to undefined function: str_split() in /in/oALGJ on line 58
Process exited with code 255.
Output for 4.3.2 - 4.4.4
Fatal error: Call to undefined function: str_split() in /in/oALGJ on line 58
Process exited with code 255.
Output for 4.3.0 - 4.3.1
Fatal error: Call to undefined function: str_split() in /in/oALGJ on line 58