在给定参数内找到由 3 个其他完美立方体的总和构成的所有完美立方体

时间:2021-07-10 05:45:20

标签: python

我和我的一个朋友正试图这样做,但没有运气,最终得到了这个。 (我们对python还是比较基础的,这是我第一次使用堆栈溢出。)

cubelist = []

while True: 
  maxcube = int(input("What is the maximum parameter: "))

  for i in range(1, maxcube):
    nums = i 
    nums = abs(nums)
    if round(nums ** (1 / 3)) ** 3 == nums:
      
      cubelist.append(i)
    
  break

print(cubelist)  


pos = 0
while True :
  CubeSum = cubelist[pos] + cubelist[pos+1] + cubelist[pos+2]
  pos += 1
  for i in cubelist:
    if CubeSum > i:
      cubelist.remove(cubelist[len(cubelist)-1])

    if CubeSum == i:
      print(CubeSum)
      print("Valid")
      
    if CubeSum < i:
      print(CubeSum)
      print("Invalid")
      
  break

1 个答案:

答案 0 :(得分:0)

您以错误的方式求和,只取三个连续的元素。如果您想找到所有可能的组合,您应该使用三个不同的索引迭代 reset.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { finish(); startActivity(getIntent()); } }); 列表。此外,您在查找 cubelist 时也执行了太多计算。检查此解决方案:

cubelist

我的输出:

cubelist = []

maxcube = int(input("What is the maximum parameter: "))
counter = 1
while True:
    cube = counter ** 3
    if cube <= maxcube:
        cubelist.append(cube)
        counter += 1
    else: break
print(cubelist)  


pos = 0
ln = len(cubelist)
for i in range(ln-2):
    for j in range(i+1, ln-1):
        for k in range(j+1, ln):
            _sum = cubelist[i] + cubelist[j] + cubelist[k]
            if _sum in cubelist:
                print('{0}={1}+{2}+{3} => valid'.format(_sum, cubelist[i], cubelist[j], cubelist[k]))
            #else:
            #    print('{0} => invalid'.format(_sum))
相关问题