제가 해결하려고했던 간단한 문제입니다. 우선 양의 정수 목록을 입력합니다. 총합이 최대이고 총합이 홀수 인 방식으로 항목을 선택하고 싶습니다. 조합이 불가능하면 인쇄하고 싶습니다 -1
. 코드를 작성했는데 제대로 작동하지 않습니다.
l = sorted(list(map(int, input().split())))
if sum(l)%2 == 1:
print(sum(l))
else:
m = 0
for x in range(len(l)):
a = l
a.pop(x)
if sum(a)%2 == 1 and sum(a) > m:
m = sum(a)
예를 들어 입력 2 3 4 5
의 경우 인쇄 9
해야하는 위치에 인쇄 11
합니다.
어떤 도움을 주시면 감사하겠습니다.
따라서 숫자 목록에서 가능한 가장 큰 홀수 합계를 얻고 싶습니다. 이것은 실제로 다소 간단하며 매우 쉽게 해결할 수 있습니다. 해야 할 일은 모든 숫자의 합계를 가져 오는 것입니다. 그 숫자에서 얻을 수있는 최대 합계입니다. 이제 두 가지 옵션이 있습니다.
코드에서 이것은 다음과 같이 보일 수 있습니다.
def largestOddSum(numbers):
s = sum(numbers)
if s % 2 == 1:
return s
for x in sorted(numbers):
if x % 2 == 1:
return s - x
return -1
다음과 같이 사용됩니다.
>>> largestOddSum([2, 3, 4, 5])
11
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다