È possibile determinare il volume degli oggetti in base a un determinato set di dimensioni:
- Il volume di una sfera può essere determinato utilizzando un singolo numero, il raggio (
r
) - Il volume di un cilindro può essere determinato usando due numeri, il raggio (
r
) e l'altezza (h
) - Il volume di una scatola può essere determinato usando tre numeri, la lunghezza (
l
), la larghezza (w
) e l'altezza (h
) - Il volume di una piramide triangolare irregolare può essere determinato utilizzando quattro numeri, le lunghezze laterali (
a, b, c
) e l'altezza (h
).
La sfida è determinare il volume di un oggetto dato uno dei seguenti input:
- Un singolo numero
(r)
o(r, 0, 0, 0)
=>V = 4/3*pi*r^3
- Due numeri
(r, h)
o(r, h, 0, 0)
=>V = pi*r^2*h
- Tre numeri
(l, w, h)
o(l, w, h, 0)
=>V = l*w*h
- Quattro numeri
(a, b, c, h)
=>V = (1/3)*A*h
, doveA
è dato dalla formula di Heron :A = 1/4*sqrt((a+b+c)*(-a+b+c)*(a-b+c)*(a+b-c))
Regole e chiarimenti:
- L'input può essere sia numeri interi che / o decimali
- Puoi presumere che tutte le dimensioni di input siano positive
- Se Pi è codificato difficile deve essere accurato fino a:
3.14159
. - L'output deve contenere almeno 6 cifre significative, ad eccezione dei numeri che possono essere rappresentati accuratamente con meno cifre. È possibile generare
3/4
come0.75
, ma4/3
deve essere1.33333
(più cifre sono OK)- Come arrotondare valori imprecisi è facoltativo
- Il comportamento per input non valido non è definito
- Regole standard per I / O. L'input può essere un elenco o argomenti separati
Questo è il golf del codice, quindi vince la soluzione più breve in byte.
Casi test:
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