
https://www.acmicpc.net/problem/1789
s를 입력받은 후, for문을 이용해 1부터 s까지 수를 더해가며 누적합 == s인지 비교하고, 맞다면 break한다. 아니라면 지금까지 더한 숫자의 개수인 n을 1 증가시킨다. 간단한 문제다!
C로 구현할 때의 주의할 점은 문제에서 주어진 S의 최대 범위가 4,294,967,295로, int형의 범위인 2,147,483,647를 넘어가기 때문에 S를 선언할 때 long long형을 사용해야 한다.
#include <stdio.h>
int main() {
long long S, sum = 0;
int n = 0;
scanf("%lld", &S);
for (int i = 1; ; i++) {
sum += i;
if (sum > S) break;
n++;
}
printf("%d\n", n);
return 0;
}
s = int(input())
sum = 0
n = 0
for i in range(1, s + 1):
sum += i
if sum > s:
break
n += 1
print(n)