Introducción
Dado un conjunto de porcentajes de opciones en una encuesta, calcule el número mínimo de votantes que debe haber en la encuesta para generar esas estadísticas.
Ejemplo: ¿Cuál es tu mascota favorita?
- Perro:
44.4%
- Gato:
44.4%
- Ratón:
11.1%
Salida: 9
(número mínimo posible de votantes)
Especificaciones
Estos son los requisitos para su programa / función:
- Se le proporciona una matriz de valores porcentuales como entrada (en stdin, como argumento de función, etc.)
- Cada valor de porcentaje es un número redondeado a un decimal (por ejemplo,
44.4 44.4 11.1
). - Calcule el número mínimo posible de votantes en la encuesta cuyos resultados arrojarían esos porcentajes exactos cuando se redondea a un decimal (en stdout o valor de retorno de función).
- Bonificación : -15 caracteres si puede resolver de una manera "no trivial" (es decir, no implica iterar a través de cada número posible de votantes hasta que encuentre el primero que funcione)
Ejemplo
>./pollreverse 44.4 44.4 11.1
9
>./pollreverse 26.7 53.3 20.0
15
>./pollreverse 48.4 13.7 21.6 6.5 9.8
153
>./pollreverse 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 99.6
2000
>./pollreverse 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 98.7
667
>./pollreverse 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 98.7
2000
>./pollreverse 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 97.8
401
Tanteo
Este es el código de golf, por lo que gana los personajes más cortos posibles. Cualquier bonificación se resta aún más del recuento total de caracteres.
0.5%
del total, y cada vez que hay un redondeo hacia arriba, suma 0.5%
al total. Los últimos cuatro casos de prueba se construyeron a propósito para explotar de manera óptima este fenómeno. En el primer caso de prueba que resulta 2000
, cada una de las primeras 9 entradas representa el 1
voto (y se redondean todas 0.5%
), mientras que la última representa los 1991
votos (y se redondea hacia abajo ~ 0.5%
). Si calcula esos porcentajes manualmente y redondea a 1 decimal, verá que todos son correctos.
26.7 53.3 20.0
(4 8 3 de 15),48.4 13.7 21.6 6.5 9.8
(74 21 33 10 15 de 153) etc.