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/4como0.75, mas4/3deve 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