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', 'ENCKE' => 'VERMELHO' ); echo verificarCometas($cometasGrupos); /** * */ function verificarCometas($cometasGrupos) { $mensagem = ''; foreach ($cometasGrupos as $cometa => $grupo) { $somaCometa = somarLetras($cometa); $somaGrupo = somarLetras($grupo); //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 koPfj
Output for 5.0.2 - 7.2.0
O grupo 'AMARELO' não será levado! O grupo 'VERMELHO' não será levado! O grupo 'PRETO' não será levado! O grupo 'AZUL' não será levado!
Output for 5.0.0 - 5.0.1
Notice: Use of undefined constant PHP_EOL - assumed 'PHP_EOL' in /in/4hOj7 on line 40 Notice: Use of undefined constant PHP_EOL - assumed 'PHP_EOL' in /in/4hOj7 on line 40 Notice: Use of undefined constant PHP_EOL - assumed 'PHP_EOL' in /in/4hOj7 on line 40 Notice: Use of undefined constant PHP_EOL - assumed 'PHP_EOL' in /in/4hOj7 on line 40 O grupo 'AMARELO' não será levado!PHP_EOLO grupo 'VERMELHO' não será levado!PHP_EOLO grupo 'PRETO' não será levado!PHP_EOLO grupo 'AZUL' não será levado!PHP_EOL
Output for 4.4.5 - 4.4.9
Fatal error: Call to undefined function: str_split() in /in/4hOj7 on line 59
Process exited with code 255.
Output for 4.3.2 - 4.4.4
Fatal error: Call to undefined function: str_split() in /in/4hOj7 on line 59
Process exited with code 255.
Output for 4.3.0 - 4.3.1
Fatal error: Call to undefined function: str_split() in /in/4hOj7 on line 59