N = int(input()) sum = N for i in range(N): sum+=i print(sum)
>>> N = 5
>>> for i in range(N):
... print(i)
...
0
1
2
3
4
여기서 볼 수 있듯이 for i in range(N)
은 0부터 N-1까지이다.
따라서 합을 구할 땐 sum = N
으로 선언해주면서 마지막 숫자인 N이 안더해지는 불상사를 방지해준다!
#include <iostream> using namespace std; int main() { int N; int sum = 0; cin >> N; while (N) { sum += N--; } cout << sum; }
while (N)
을 설명하자면, while문에서의 괄호안의 조건을 검사했을 때 true
면 반복문 실행, false
면 반복문 탈출을 하게 된다.
'그런데 N은 정수형 변수인데 어떻게 true랑 false를 구분하죠?' 라고 물어볼 수 있는데, 0이면 false
, 0이 아니면 true
로 인식하기 때문이다. 즉 N값을 1씩 빼주면서 0이 되는 순간 false
로 인식하고 반복문을 탈출하게 된다.