A configuração:
Uma rede social relata o número de votos de uma postagem de duas maneiras: o número de votos líquidos (total de votos - total de votos negativos ) e a % de votos que foram votados , arredondados para o número inteiro mais próximo (0,5 arredondamentos para cima). O número de upvotes líquidos é um número inteiro (não necessariamente positivo), e o segundo é garantido como um número inteiro entre 0 e +100, inclusive. O número de votos upvotes e o número de downvotes são números inteiros de zero ou positivos de 32 bits (você pode especificar assinado ou não). Suponha que, se houver zero total de votos, a porcentagem votada acima seja relatada como zero.
O desafio:
Dado esses dois números inteiros (votações líquidas e% votadas), qual é o programa mais curto que você pode escrever, que determina o número mais baixo de votações totais totais da postagem recebida, com todas as restrições acima satisfeitas?
As restrições de entrada são garantidas. Se a entrada não atender às restrições acima, o comportamento do programa depende de você. Kudos de bônus se não entrar em um loop infinito ou travar. Considere retornar um número negativo se desejar mais orientação.
Regras gerais:
- Isso é código-golfe , então a solução válida mais curta (medida em bytes) vence.
- Não permita que idiomas com código de golfe o desencorajem a postar respostas com idiomas que não sejam codegolf. Tente encontrar uma resposta o mais curta possível para 'qualquer' linguagem de programação. Parabéns por uma linguagem da Web do lado do cliente, como Javascript.
- Se você tiver soluções interessantes em vários idiomas, publique-as separadamente .
- As regras padrão se aplicam à sua resposta, para que você possa usar STDIN / STDOUT, funções / método com os parâmetros e tipo de retorno adequados ou programas completos. Sua chamada.
- As brechas padrão são proibidas.
- Se possível, adicione um link com um teste para o seu código.
- Além disso, adicione uma explicação de como o código funciona.
- Lembre-se de que se você estiver executando uma operação de divisão inteira que trunca (por exemplo, 20/3 = 6) em vez de arredondamentos , isso pode não estar totalmente correto.
- Casos de teste adicionais que exploram os casos extremos nas restrições acima são bem-vindos.
- Enquanto o tipo de retorno esperado é numérico, booleano "false" pode ser usado no lugar de 0 .
Exemplos de casos de teste:
A primeira coluna é apenas um número de referência incluído para facilitar a discussão.
ref net %up answer
1 0 0 => 0
2 -5 0 => 0
3 -4 17 => 1
4 -3 29 => 2
5 -2 38 => 3
6 -1 44 => 4
7 0 50 => 1
8 5 100 => 5
9 4 83 => 5
10 3 71 => 5
11 2 63 => 5
12 1 56 => 5
13 1234 100 => 1234
14 800 90 => 894 (tip: don't refer to this as the "last test case;" others may be added.)
1000, 100
. Você pode confirmar que a resposta esperada é 1000
?