2010-04-20 4 views
0

최대 10 개의 정수와 합계의 목록이 주어지면 하위 집합을 표시하는 프로그램을 작성하십시오 하나가 존재할 경우 합계가 없거나 그렇지 않으면 합계가없는 숫자를 나타냅니다. 예를 들어 목록의 경우 5,13,24,9,3,3 및 sum = 28이면 프로그램에 13, 9, 3, 3이 표시되어야합니다.최대 10 개의 정수와 합계의 목록이 주어지면 그 합계가 합계 인 숫자의 하위 집합이 표시됩니다.

재귀 함수를 사용하여 C++에서이를 수행하는 방법은 무엇입니까?

+0

가능한 모든 하위 집합을 출력할까요 아니면 단 하나만 출력해야합니까? –

+2

이 숙제가 있습니까? 어쨌든, 대답은 당신이 더 나은 프로그래머가 될 수 있도록 도와주지 않을 것입니다. 자신이 한 일을 우리에게 보여주고 우리가 도울 수 있습니다. –

답변

1

재귀 함수는 실제로이 작업을 수행하는 가장 간단하거나 빠른 방법은 아니지만 원하는 합계와 정수 목록을 사용하는 함수를 작성할 수 있습니다.

함수는 한 번에 하나의 요소 만 목록으로 이동하고 각 요소에 대해 현재 목표 값에서 빼고 새 목표로 현재 재귀 적으로 호출하고 현재 빼기 요소가 제거 된 새 목록을 호출합니다. 기본 경우는 빈 목록과 값입니다. 이 값이 0이면 true를 반환하고 그렇지 않으면 false를 반환합니다. 함수가 true를 반환 할 때마다 현재 고려되는 요소는 솔루션의 값이므로 출력 할 수 있습니다.