<문제>
https://www.acmicpc.net/problem/1834
<내가 제출한 코드>
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main() {
long long n;
scanf("%lld", &n);
printf("%lld", n*(n-1)*(n+1)/2);
}
간단한 식을 찾아야 된다는 점이 첫번째,
수가 매우 커지기 때문에 long long형 정수를 써야한다는 점이 두번째
이 둘을 잘 고려하면서 문제를 풀어야 함.
n=3일때는 4+8 = 4*(1+2)이고
n=4일때는 5+10+15 = 5*(1+2+3) 이고,
n=5일때는 6+12+18+24 = 6*(1+2+3+4) 이다.
즉 n 일때 (n+1) * (1에서 n-1까지 더한 값) 이므로 식을 (n+1) * n * (n-1) / 2 라고 구해줄 수 있었다.
'⌨️ Algorithm > C' 카테고리의 다른 글
1/27 [C] 백준 1158번 - 요세푸스 문제 (0) | 2022.01.27 |
---|---|
1/27 [C] 백준 1037번 - 약수 (0) | 2022.01.27 |
1/25 [C] 백준 1546번 - 평균 (0) | 2022.01.25 |
1/24 [C] 백준 1408번 - 24 (0) | 2022.01.24 |
1/24 [C] 백준 1357번 - 뒤집힌 덧셈 (0) | 2022.01.24 |
댓글