반응형
#include <iostream>
using namespace std;
int arr[5];
int path[6];
int sum;
int cnt;
void abc(int lev, int sum, int head) {
if (sum > 20)return;
if (lev == 5) {
if (sum >= 10 && sum <= 20) {
for (int j = 0; j < head;j++) {
cout << path[j] << "+";
}cout<<path[head] << endl;
cnt++;
}
return;
}
for (int i = 0; i < 2;i++) {
if (i == 0) {
path[head] = arr[lev];
abc(lev + 1, sum + arr[lev], head+=1);
path[head] = 0;
head -= 1;
}
else {
abc(lev + 1, sum, head);
}
}
}
int main() {
for (int i = 0; i < 5;i++) {
cin >> arr[i];
}
abc(0, 0, 0);
cout << cnt;
}
입력]
1 3 4 7 9
[출력]
3+4+7
3+4+9
4+7
7+9
1+3+4+7
...
_____________
18
3 4 5 9 1
3+4+5+1+0
3+4+5+1
3+4+9+1+0
3+4+9+1
3+5+9+1+0
3+5+9+1
3+9+1+0
3+9+1
4+5+9+1+0
4+5+9+1
4+5+1+0
4+9+1+0
4+9+1
5+9+1+0
5+9+1
9+1+0
16
<<실제 나오는 값
흠 앵간?
반응형
'C언어 > 문제풀다 하나씩' 카테고리의 다른 글
가장 큰 숫자값 3개 구하기 // 4칸짜리 삽입정렬 이용함 (0) | 2020.05.13 |
---|---|
가장 작은 세자리 출력 (0) | 2020.05.13 |
또 톱니바퀴 돌리기 문제 (0) | 2020.05.13 |
문자 빼기 #include <vector> 써보기 arr.erase(arr.begin()+index); (0) | 2020.05.13 |
징검다리 건너기 (0) | 2020.05.13 |
자전거 암호 찾기 strcmp() & found = 1 OUT (0) | 2020.05.09 |
ox로 재귀호출 프린트 간단 (0) | 2020.05.09 |
순서 나열하기 간단 (0) | 2020.05.09 |