PS (C, C++)

[백준/C & C++] 5724 파인만

최연재 2022. 9. 4. 21:49

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

 

5724번: 파인만

리처드 필립스 파인만은 노벨 물리학상을 수상한 미국의 물리학자이다. 그는 이론물리학을 연구했고, 양자 컴퓨팅 분야를 개척했다. "Surely You’re Joking, Mr. Feynman!", "What Do You Care What Other People Thi

www.acmicpc.net

코드 (C)

#include <stdio.h>

int main()
{
	while (1)
	{
		int n;
		scanf("%d", &n);
		if (n == 0) break;
		else
		{
			printf("%lld\n", n * (n + 1) * (2 * n + 1) / 6);
		}
	}
	return 0;
}

코드 (C++)

#include <iostream>
using namespace std;

int main()
{
	int n;
	long long result;

	while (1)
	{
		cin >> n;
		if (n == 0) break;
		else cout << n * (n + 1) * (2 * n + 1) / 6 << "\n";
	}
	return 0;
}

코드설명 

n*n 정사각형으로 이루어진 그리드에 있는 서로 다른 정사각형의 개수는 n*(n+1)*(2n*1)/6 이다. 

따라서 입력의 종료를 뜻하는 0이 나오면 break로 무한루프를 탈출하고 그렇지 않을 경우에는 위 식에 수를 대입해 계산한 결과를 출력한다. 

느낀 점

처음에는 재귀함수를 써서 문제를 풀었는데, 틀려서 그냥 식을 바로 적고 그 식에 값을 대입해서 결과를 출력하는 방식으로 풀었다. 

'PS (C, C++)' 카테고리의 다른 글

[백준/C & C++] 1259 펠린드롬수  (0) 2022.09.05
[백준/C & C++] 3009 네 번째 점  (0) 2022.09.04
[백준/C & C++] 2920 음계  (0) 2022.09.04
[백준/C & C++] 1297 TV 크기  (0) 2022.09.03
[백준/C & C++] 7568 덩치  (0) 2022.09.03