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, dondeAviene 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/4como0.75, pero4/3debe 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