La puesta en marcha:
Una red social informa el número de votos que tiene una publicación de dos maneras: el número de votos a favor netos ( votos a favor totales - votos a favor totales) y el % de votos que fueron votos a favor , redondeados al número entero más cercano (.5 redondeos ). El número de votos a favor netos es un número entero (no necesariamente positivo), y se garantiza que el segundo sea un número entero entre 0 y +100 inclusive. La cantidad de votos a favor y la cantidad de votos a la baja son enteros de cero o positivos de 32 bits (puede especificar con signo o sin signo). Suponga que si hay cero votos totales, el porcentaje de votos votados se informa como cero.
El reto:
Dados estos dos enteros (votos a favor netos y% de votos a favor), ¿cuál es el programa más corto que puede escribir que determina el número más bajo de votos a favor totales que recibió la publicación, con todas las restricciones anteriores satisfechas?
Las restricciones de entrada están garantizadas. Si la entrada no satisface las restricciones anteriores, el comportamiento del programa depende de usted. Felicitaciones adicionales si no entra en un bucle infinito o si no se bloquea. Considere devolver un número negativo si desea más orientación.
Reglas generales:
- Este es el código de golf , por lo que gana la solución válida más corta (medida en bytes).
- No permita que los lenguajes de code-golf lo desanimen a publicar respuestas con lenguajes que no sean codegolfing. Trate de encontrar una respuesta lo más breve posible para 'cualquier' lenguaje de programación. Felicitaciones adicionales para un lenguaje web del lado del cliente como Javascript.
- Si tiene soluciones interesantes en varios idiomas, publíquelas por separado .
- Se aplican reglas estándar para su respuesta, por lo que puede usar STDIN / STDOUT, funciones / método con los parámetros adecuados y el tipo de retorno, o programas completos. Tu llamada.
- Las lagunas predeterminadas están prohibidas.
- Si es posible, agregue un enlace con una prueba para su código.
- Además, agregue una explicación de cómo funciona el código.
- Tenga en cuenta que si está realizando una operación de división de enteros que se trunca (por ejemplo, 20/3 = 6) en lugar de rondas , eso podría no ser completamente correcto.
- Se aceptan casos de prueba adicionales que exploren los casos límite en las restricciones anteriores.
- Si bien el tipo de retorno esperado es numérico, se puede usar "falso" booleano en lugar de 0 .
Ejemplos de casos de prueba:
La primera columna es solo un número de referencia incluido para facilitar la discusión.
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
. ¿Puedes confirmar que la respuesta esperada es 1000
?