IT 프로그래밍/백준

[C++] 8393 합

기술1 2024. 3. 15. 15:14
반응형

https://www.acmicpc.net/problem/8393

 

8393번: 합

n이 주어졌을 때, 1부터 n까지 합을 구하는 프로그램을 작성하시오.

www.acmicpc.net

#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