Programming/Baekjoon

백준 1789 수들의합 [c++]

fishersheep 2021. 9. 9. 13:32
반응형
#include <iostream>
using namespace std;

int main()
{	
	ios::sync_with_stdio(0);
	cin.tie(0);

	long long S;	//입력받을 자연수의합 선언

	long sum = 0;	//자연수의합과 비교할 변수
	int count = 0;	//더해지는 자연수를 count할 변수
	long num = 1;	//더해질 변수
	
	cin >> S;	//S를 입력

	while (1)	//무한루프
	{	
		
		sum += num;	//num의값을 sum에 더한다
		count++;	//값을 더했으니 count에 1더한다
		
		if (sum > S)	//sum의 값이 자연수의 합보다 커진다면
		{	
			count--;	//count에서 1을빼고 반환한다. 문제에 나온 예시인 합 200을보면 1씩더해서 200이 딱나오지 않는다.이 경우에 마지막수를 남은 값에 맞게 변경한다고 생각하면 된다.
			break;	//반복문탈출
		}
		num++;	//num에 1을 더한다.
		
	}
	cout << count;	//결과출력
	return 0;
}
반응형

'Programming > Baekjoon' 카테고리의 다른 글

백준 10951 A+B [c++]  (0) 2022.01.10
백준 1312 소수 [c]  (0) 2022.01.08
백준 1978 소수찾기 [c++]  (0) 2021.08.31
백준 2693 N번째 큰수 [c++]  (0) 2021.08.29
백준 2609 최대공약수 최소공배수 [c++]  (0) 2021.08.29