在Python中循环循环?

 痷徥一痞駺4 发布于 2023-02-12 15:22

我试图在coderbyte的简单部分解决这个问题,提示是:

让函数ArrayAdditionI(arr)获取存储在arr中的数字数组,如果数组中的任何数字组合可以添加到数组中的最大数字,则返回字符串true,否则返回字符串false.例如:如果arr包含[4,6,23,10,1,3],则输出应返回true,因为4 + 6 + 10 + 3 = 23.数组不会为空,不包含所有相同的元素,并且可能包含负数.

这是我的解决方案.

def ArrayAddition(arr):
arr = sorted(arr, reverse=True)
large = arr.pop(0)
storage = 0
placeholder = 0
for r in range(len(arr)):
    for n in arr:
        if n + storage == large: return True
        elif n + storage < large: storage += n
        else: continue
    storage = 0
    if placeholder == 0: placeholder = arr.pop(0)
    else: arr.append(placeholder); placeholder = arr.pop(0)
return False

print ArrayAddition([2,95,96,97,98,99,100])

我甚至不确定这是否正确,但它似乎涵盖了我插入的所有数字.我想知道是否有更好的方法通过我不知道的算法来解决这个问题.我正在考虑for for for for for,et循环可以解决问题,但我不知道如何做到这一点.

我的想法是用A + B,A + C,A + D ... A + B + C ...... A + B + C + D + E来实现这一目标

例如)

for i in range(len(arr):
print "III: III{}III".format(i)
storage = []
for j in range(len(arr):
    print "JJ: II({}),JJ({})".format(i,j)

    for k in range(len(arr):
        print "K: I{}, J{}, K{}".format(i,j,k)

我已经搜遍了所有的并发现了itertool的建议,但是我想知道是否有办法更加原始地编写这个代码.

谢谢.

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有