未通过Google Foobar测试而不知道原因

时间:2018-05-26 11:55:39

标签: python python-2.7 google-foobar

验证解决方案...... 测试1通过了! 测试2通过了! 测试3失败。 测试4失败。 测试5通过了! 测试6通过了! 测试7失败。 测试8失败。 测试9失败。 测试10失败。

要求:
Solar Doomsday

谁会猜到?世界末日的装置占据了很大的力量。 Lambda指挥官希望用太阳能电池板补充LAMBCHOP的量子反物质反应堆堆芯,她的任务是设置太阳能电池板。

由于空间站外板的性质,其所有太阳能电池板必须是正方形。幸运的是,你有一个非常大而平坦的太阳能材料区域,一对工业级剪刀和足够的MegaCorp太阳能胶带(TM)将任何多余的面板材料拼凑成更多正方形。例如,如果你的总面积为12平方码的太阳能材料,你就可以制作一个3x3的方形面板(总面积为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 个答案:

答案 0 :(得分:0)

def count(area):
  result = []
  while area > 0:
    value = int(area ** 0.5)
    square = value ** 2
    result.append(square)
    area -= square
  return result