알고리즘 문제풀기/인프런 강의 정답
41. 연속된 자연수의 합(단순 수리) [정렬 & 이분탐색(결정알고리즘) & 투포인트 알고리즘 & 스택]
코다람쥐
2022. 4. 12. 23:04
나의정답.
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <string>
#include <algorithm>
#include <vector>
using namespace std;
int main(int argc, char** argv) {
//freopen("input.txt", "rt", stdin);
int input, n, sum, i, j, cnt, count = 0;
scanf("%d", &input);
vector<int> arr(100);
n = (input / 2) + 1;
for(i = n; i >= 0; i--){
sum = 0;
cnt = 0;
for(j = i; j > 0; j--) {
sum += j;
arr[cnt++] = j;
if( sum >= input)
break;
}
if(sum == input){
for(j = cnt; j > 0; j--){
printf("%d ", arr[j - 1]);
if(j > 1)
printf("+ ");
}
printf("= %d\n", input);
count++;
}
}
printf("%d", count);
}