Você pode determinar o volume de objetos com base em um determinado conjunto de dimensões:
- O volume de uma esfera pode ser determinado usando um único número, o raio (
r
) - O volume de um cilindro pode ser determinado usando dois números, o raio (
r
) e a altura (h
) - O volume de uma caixa pode ser determinado usando três números, comprimento (
l
), largura (w
) e altura (h
) - O volume de uma pirâmide triangular irregular pode ser determinado usando quatro números, os comprimentos laterais (
a, b, c
) e a altura (h
).
O desafio é determinar o volume de um objeto, com uma das seguintes entradas:
- Um único número
(r)
ou(r, 0, 0, 0)
=>V = 4/3*pi*r^3
- Dois números
(r, h)
ou(r, h, 0, 0)
=>V = pi*r^2*h
- Três números
(l, w, h)
ou(l, w, h, 0)
=>V = l*w*h
- Quatro números
(a, b, c, h)
=>V = (1/3)*A*h
, ondeA
é dado pela fórmula de Heron :A = 1/4*sqrt((a+b+c)*(-a+b+c)*(a-b+c)*(a+b-c))
Regras e esclarecimentos:
- A entrada pode ser números inteiros e / ou decimais
- Você pode assumir que todas as dimensões de entrada serão positivas
- Se Pi é codificado deve ser preciso até:
3.14159
. - A saída deve ter pelo menos 6 dígitos significativos, exceto os números que podem ser representados com precisão com menos dígitos. Você pode produzir
3/4
como0.75
, mas4/3
deve ser1.33333
(mais dígitos estão OK)- Como arredondar valores imprecisos é opcional
- O comportamento para entrada inválida é indefinido
- Regras padrão para E / S. A entrada pode ser uma lista ou argumentos separados
Isso é código de golfe, então a solução mais curta em bytes vence.
Casos de teste:
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