반응형
https://www.acmicpc.net/problem/8393
#include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
int result = 0;
for (int i = 1; i <= n; i++)
{
result += i;
}
cout << result << endl;
return 0;
}
처음에 오류가 났었습니다.
그 부분은 바로 int result 부분이었는데요. 저는 아무 생각없이 int result; 이렇게 해주었지만 전역변수 같은 경우 이렇게 해주었을 경우 쓰레기값이 리턴될 수 있기 때문에 항상 초기화를 해준 후 진행해주어야 합니다.
int n; 은 초기화를 안해줬는데 왜 result는 초기화를 해주어야 하는지 생각한다면 바로 result는 누적 합산을 구하는 변수이기 때문에 초기화를 안해준다면 오류가 발생하지만 int n 은 변수를 입력받는 것이기에 초기화되지 않은 상태에서 선언할 수 있기 때문입니다.
int n은 사용자 입력을 받기 위한 변수이고 int result는 반복문 내에서 누적 합산을 위한 변수이므로 둘이 다른 것입니다.
따라서 int result = 0 ; 이런 식으로 초기화를 한 후 진행을 해주었더니 정답이 되었습니다.
나머지 for문 같은 경우 int i = 1로 잡아준 것은 1부터이기 때문이고 i <=n 이 되고 나면 n번 반복하고서 i++를 하기 때문에문제 없이 1부터 n까지의 합이 더해지게 됩니다.
반응형
'IT 프로그래밍 > 백준' 카테고리의 다른 글
백준 10807 개수 세기 (0) | 2024.03.16 |
---|---|
[C++] 25304 영수증 (0) | 2024.03.15 |
[C++] 백준 10950번 A+B -3 (0) | 2024.03.15 |
[C++] 백준 2739번 구구단 (0) | 2024.03.15 |
[c++] 2480 주사위 세개 (0) | 2024.03.14 |