Сбой на тестах 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
Другие вопросы по тегам