Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
First solution in Clear category for Humpty Dumpty Form by chunshar
import math
def checkio(height, width):
a, b = width / 2, height / 2
v = round(4/3 * math.pi * a**2 * b, 2)
if a > b:
e = math.sqrt(1 - (b/a)**2)
s = round(2 * math.pi * (a**2 + b**2*math.atanh(e)/e), 2)
elif a < b:
e = math.sqrt(1 - (a/b)**2)
s = round(2 * math.pi * (a**2 + a*b*math.asin(e)/e), 2)
else:
s = round(4 * math.pi * a**2, 2)
return [v, s]
#These "asserts" using only for self-checking and not necessary for auto-testing
if __name__ == '__main__':
assert checkio(4, 2) == [8.38, 21.48], "Prolate spheroid"
assert checkio(2, 2) == [4.19, 12.57], "Sphere"
assert checkio(2, 4) == [16.76, 34.69], "Oblate spheroid"
Nov. 1, 2016