자꾸 수학 문제 푸는 거 같은데...
홀수의 피라미드이므로 자연수 피라미드에 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 |