您可以根据一组给定的尺寸确定对象的体积:
- 球体的体积可以使用一个数字确定,半径(
r
) - 圆柱体的体积可以使用两个数字确定,即半径(
r
)和高度(h
) - 可以使用三个数字(长(
l
),宽(w
)和高(h
))确定盒子的体积 - 可以使用四个数字(边长(
a, b, c
)和高度(h
))确定不规则三角形棱锥的体积。
面临的挑战是在以下输入之一的情况下确定对象的体积:
- 单个数字
(r)
或(r, 0, 0, 0)
=>V = 4/3*pi*r^3
- 两个数字
(r, h)
或(r, h, 0, 0)
=>V = pi*r^2*h
- 三个数字
(l, w, h)
或(l, w, h, 0)
=>V = l*w*h
- 四个数字
(a, b, c, h)
=>V = (1/3)*A*h
,A
由Heron公式给出:A = 1/4*sqrt((a+b+c)*(-a+b+c)*(a-b+c)*(a+b-c))
规则和说明:
- 输入可以是整数和/或小数
- 您可以假设所有输入尺寸均为正
- 如果Pi是硬编码的,则必须精确到:
3.14159
。 - 输出必须至少包含6个有效数字,但可以用较少的数字准确表示的数字除外。您可以将输出
3/4
为0.75
,但4/3
必须为1.33333
(可以输入更多数字)- 如何舍入不正确的值是可选的
- 无效输入的行为未定义
- I / O的标准规则。输入可以是列表或单独的参数
这是代码高尔夫,所以最短的解决方案以字节为单位。
测试用例:
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