3v4l.org

run code in 200+ php & hhvm versions
Bugs & Features
<?php /** * Problema: * * 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 */ /** * Verifica um array contendo os cometas e grupos que serão levados. * * @param Array $cometasGrupos * @return String */ function verificarCometas($cometasGrupos) { $mensagem = ''; foreach ($cometasGrupos as $cometa => $grupo) { $somaCometa = somarLetras($cometa); $somaGrupo = somarLetras($grupo); if (! validarDivisao($somaCometa, $somaGrupo)) { $mensagem .= "{$grupo}" . 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 a divisão do cometa e grupo e retorna se ele é valido ou não. * * @param Int $cometa, Int $grupo * @return Boolean */ function validarDivisao($cometa, $grupo) { $divisor = 45; $divisaoCometa = $cometa % $divisor; $divisaoGrupo = $grupo % $divisor; $valido = false; if ($divisaoCometa == $divisaoGrupo) { $valido = true; } return $valido; } /** * Lista de cometas e grupos a serem verificados. */ $cometasGrupos = array( 'HALLEY' => 'AMARELO', 'ENCKE' => 'VERMELHO', 'WOLF' => 'PRETO', 'KUSHIDA' => 'AZUL' ); echo verificarCometas($cometasGrupos);
based on R3ZHP
Output for 5.0.2 - 7.2.0
VERMELHO
Output for 5.0.0 - 5.0.1
Notice: Use of undefined constant PHP_EOL - assumed 'PHP_EOL' in /in/8PYWF on line 69 VERMELHOPHP_EOL
Output for 4.4.5 - 4.4.9
Fatal error: Call to undefined function: str_split() in /in/8PYWF on line 103
Process exited with code 255.
Output for 4.3.2 - 4.4.4
Fatal error: Call to undefined function: str_split() in /in/8PYWF on line 103
Process exited with code 255.
Output for 4.3.0 - 4.3.1
Fatal error: Call to undefined function: str_split() in /in/8PYWF on line 103