浦发银行算法接力赛总结/python语言/算法+建模/用户行为预测-07算法:曹冲称象

这段代码从标准输入读取数据,然后解决一个与组合有关的问题。它计算并打印出能够加起来等于给定整数的元素子集的大小。如果找不到这样的子集,输出-1。涉及到的编程概念包括迭代、条件判断、组合计算和标准库函数的使用。
摘要由CSDN通过智能技术生成

在这里插入图片描述

import sys
import itertools

for line in sys.stdin:#获取输入
    a = line.split()
    ele = int (a[0])
    del (a[0])
    a = list (map (int, a))
    flag=0
    sumA=0
    for i in range(0,len(a)):
        sumA+=a[i]
    if sumA<ele:
        print ('-1')
    else:
        for i in range(1,len(a)+1):
            for select in itertools.combinations(a, i):
                sum = 0
                for j in range(0,len(select)):
                    sum += select[j]
                    if sum == ele:
                        flag = 1
                        print(i)
                        break
                if flag==1:
                    break
            if flag == 1:
                break
        if flag==0:
            print ('-1')

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值