본문 바로가기

문제풀이/C 문제풀이

[SWEA]8016 홀수 피라미드

자꾸 수학 문제 푸는 거 같은데...

홀수의 피라미드이므로 자연수 피라미드에 2*n+1를 했다고 생각할 수 있다.

      1
   2 3 4
5 6 7 8 9

자연수 피라미드는 다음과 같이 나오는데 잘 관찰을 해보면
n층의 제일 오른쪽 숫자는 n^2, 제일 왼쪽 숫자는 (n-1)^2+1라는 걸 알 수 있다.
이 두 숫자에 2를 곱하고 1을 더하면 답을 출력할 수 있다.

+) N의 범위가 10의 9승이므로 int(-10^28 ~ 10^28)의 범위에 완전히 속하지 않는다.
따라서 long 또는 long long 타입을 써야 한다.

#include <stdio.h>
int main(void)
{
	int test_case;
	int T;
    
	setbuf(stdout, NULL);
	scanf("%d", &T);
    
	for (test_case = 1; test_case <= T; ++test_case)
	{
        long long n;
        scanf("%lld", &n);
        printf("#%d %lld %lld\n", test_case, 2*((n-1)*(n-1)+1)-1, 2*n*n-1);
	}
	return 0; //정상종료시 반드시 0을 리턴해야 합니다.
}


'문제풀이 > C 문제풀이' 카테고리의 다른 글

[SWEA]5515 2016년 요일 맞추기  (0) 2019.10.01
[SWEA]7532 세영이의 SEM력 연도  (0) 2019.10.01
[SWEA]7728 다양성 측정  (0) 2019.09.18
[SWEA]3456 직사각형 길이 찾기  (0) 2019.09.18
[SWEA]8500 극장 좌석  (0) 2019.09.18