Сбой на тестах Google Foobar и не знаю почему - PullRequest
0 голосов
/ 26 мая 2018

Проверочное решение ... Тест 1 пройден!Тест 2 пройден!Тест 3 не прошел.Тест 4 не удался.Тест 5 пройден!Тест 6 пройден!Тест 7 не прошел.Тест 8 не удался.Тест 9 не прошел.Тест 10. не пройден.

Требования:
Солнечный конец света

Кто бы мог догадаться?Устройства Судного Дня берут МНОГО власти.Коммандер Лямбда хочет дополнить ядро ​​реактора квантового антивещества LAMBCHOP солнечными батареями, и она поручила вам настроить солнечные панели.

Из-за характера внешних панелей космической станции все ее солнечные панели должны бытьквадраты.К счастью, у вас есть одна очень большая и плоская область солнечного материала, пара ножниц промышленной прочности и достаточно солнечной ленты MegaCorp (TM), чтобы собрать любой лишний материал панели в несколько квадратов.Например, если бы у вас была общая площадь 12 квадратных ярдов солнечного материала, вы могли бы сделать одну квадратную панель размером 3х3 (общей площадью 9).Это оставило бы 3 квадратных ярда, так что вы можете превратить их в три квадратные солнечные панели размером 1x1.

Напишите ответ функции (область), который принимает в качестве входных данных единицу измерения, представляющую общую площадь солнечных панелей, которую выиметь (от 1 до 1000000 включительно) и возвращает список областей самых больших квадратов, которые вы можете сделать из этих панелей, начиная сначала с самых больших квадратов.Итак, следуя приведенному выше примеру, answer (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 Ответ

0 голосов
/ 26 мая 2018
def count(area):
  result = []
  while area > 0:
    value = int(area ** 0.5)
    square = value ** 2
    result.append(square)
    area -= square
  return result
...