Сбой на тестах Google Foobar и не знаю почему
Проверка решения... Тест 1 пройден! Тест 2 пройден! Тест 3 не удался. Тест 4 не удался. Тест 5 пройден! Тест 6 пройден! Тест 7 не удался. Тест 8 не удался. Тест 9 не прошел. Тест 10 не прошел.
Требования:
Солнечный Судный день
Кто бы мог догадаться? Устройства Судного Дня берут МНОГО власти. Коммандер Лямбда хочет дополнить ядро реактора квантового антивещества LAMBCHOP солнечными батареями, и она поручила вам установить солнечные панели.
Из-за характера наружных панелей космической станции все ее солнечные панели должны быть квадратными. К счастью, у вас есть одна очень большая и плоская область солнечного материала, пара ножниц промышленной прочности и достаточно солнечной ленты MegaCorp (TM), чтобы собрать любой лишний материал панели в несколько квадратов. Например, если бы у вас была общая площадь 12 квадратных ярдов солнечного материала, вы могли бы сделать одну квадратную панель 3х3 (общей площадью 9). Это оставило бы 3 квадратных ярда, так что вы можете превратить их в три солнечных панели размером 1x1.
Напишите функциональный ответ (область), который принимает в качестве входных данных единицу измерения, представляющую общую площадь солнечных панелей (от 1 до 1000000 включительно), и возвращает список областей наибольших квадратов, которые вы можете сделать из этих панели, начиная с самых больших квадратов в первую очередь. Итак, следуя приведенному выше примеру, ответ (12) вернет [9, 1, 1, 1].
Вот мой код:
import math
def answer(area):
list_num=[]
if area<=0:
print "Please enter a positive integer"
else:
for time in range(1,5):
list_total=[thing**2 for thing in range(1,int(math.sqrt(area)+1))]
if len(list_total)!=0:
list_num.append(list_total[-1])
area-=list_total[-1]
else:
list_num.append(0)
print "(int list) %s" % (list_num)
return list_num
1 ответ
def count(area):
result = []
while area > 0:
value = int(area ** 0.5)
square = value ** 2
result.append(square)
area -= square
return result