목록 번호를 추가하여 특정 숫자에 도달하는 방법의 수를 반환하는 함수를 작성해야합니다. 예를 들어 내가 쓴특정 숫자의 합계 수를 반환하는 함수
print(p([3,5,8,9,11,12,20], 20))
should return:5
코드는 다음과 같습니다
def pow(lis):
power = [[]]
for lst in lis:
for po in power:
power = power + [list(po)+[lst]]
return power
def p(lst, n):
counter1 = 0
counter2 = 0
power_list = pow(lst)
print(power_list)
for p in power_list:
for j in p:
counter1 += j
if counter1 == n:
counter2 += 1
counter1 == 0
else:
counter1 == 0
return counter2
pow()
는 수 n에 도달 할 수있는 방법의 수를 반환해야 목록의 부분 집합의 모든 및 p
을 반환하는 함수입니다. 나는 계속 0의 출력을 얻었고 나는 왜 그런지 이해하지 못한다. 나는 당신의 의견을 듣고 싶습니다. 미리 감사드립니다.
'pow'는 내장 함수이기 때문에 다른 이름을 선택하는 것이 좋습니다. 어떤 경우 든, 모든 숫자가 양수인 것으로 알려진다면, 모든 부분 집합을 검토하는 것은 과도합니다. –
또한 숙제이고 처음부터 모든 것을 다 할 것으로 예상되지 않는 한,'itertools' 모듈을 사용하는 것은 하위 집합을 열거하는 가장 쉬운 방법입니다. –
'counter1 == 0'은'counter1 = 0' (두 번)이어야합니다. 오타가 남았습니다. 또한, 'counter2 = sum (power_list의 p에 대한 합계 (p) == n)' –