Puede determinar el volumen de objetos en función de un conjunto dado de dimensiones:
- El volumen de una esfera se puede determinar usando un solo número, el radio (
r
) - El volumen de un cilindro se puede determinar usando dos números, el radio (
r
) y la altura (h
) - El volumen de una caja se puede determinar usando tres números, la longitud (
l
), el ancho (w
) y la altura (h
) - El volumen de una pirámide triangular irregular se puede determinar usando cuatro números, las longitudes laterales (
a, b, c
) y la altura (h
).
El desafío es determinar el volumen de un objeto dada una de las siguientes entradas:
- Un solo número
(r)
o(r, 0, 0, 0)
=>V = 4/3*pi*r^3
- Dos números
(r, h)
o(r, h, 0, 0)
=>V = pi*r^2*h
- Tres números
(l, w, h)
o(l, w, h, 0)
=>V = l*w*h
- Cuatro números
(a, b, c, h)
=>V = (1/3)*A*h
, dondeA
viene dado por la fórmula de Heron :A = 1/4*sqrt((a+b+c)*(-a+b+c)*(a-b+c)*(a+b-c))
Reglas y aclaraciones:
- La entrada puede ser tanto enteros como decimales
- Puede asumir que todas las dimensiones de entrada serán positivas
- Si Pi se codifica difícil que debe ser precisa hasta:
3.14159
. - La salida debe tener al menos 6 dígitos significativos, excepto los números que se pueden representar con precisión con menos dígitos. Puede generar
3/4
como0.75
, pero4/3
debe ser1.33333
(más dígitos están bien)- Cómo redondear valores inexactos es opcional
- El comportamiento de la entrada no válida no está definido
- Reglas estándar para E / S. La entrada puede ser una lista o argumentos separados
Este es el código de golf, por lo que gana la solución más corta en bytes.
Casos de prueba:
calc_vol(4)
ans = 268.082573106329
calc_vol(5.5, 2.23)
ans = 211.923986429533
calc_vol(3.5, 4, 5)
ans = 70
calc_vol(4, 13, 15, 3)
ans = 24