È 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/4come0.75, ma4/3deve 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