백준 2018 c++

magicdrill·2024년 7월 20일

백준 문제풀이

목록 보기
397/673

백준 2018 c++

N이 1일경우 2가 출력되는 예외가 있었다. 가장 최악의 경우, 가장 단순한 경우에 대해 예외를 확인해보자.

#include <iostream>

using namespace std;

void find_answer(int N)
{
	int i, j, k;
	int count = 1;
	int sum;
	int max = (N % 2 == 0) ? (N / 2) : (N / 2 + 1);
	
	if (N == 1)
	{
		cout << "1\n";
		
		return;
	}
	for (i = 1; i <= max; i++)
	{
		sum = 0;
		for (j = i; j <= max; j++)
		{
			sum += j;
			if (sum > N)
			{
				break;
			}
			else if (sum == N)
			{
				count++;
				break;
			}
			else
			{
				continue;
			}
		}
	}
	cout << count << "\n";

	return;
}

int main(void)
{
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);

	int N;

	cin >> N;
	find_answer(N);

	return 0;
}

0개의 댓글