728x90
코드
#include <stdio.h>
main() {
long long int n;
scanf("%lld", &n);
printf("%lld", n * (n - 1) * (n + 1) / 2);
}
설명
먼저 n은 최대 2,000,000까지 입력될 수 있으므로 long long int로 작성했다.
문제를 살펴보면,
n=2일 때: 3 (합: 8)
n=3일 때: 4, 8 (합: 12)
n=4일 때: 5, 10, 15 (합: 30)
n=5일 때: 6, 12, 18, 24 (합: 60)
. . .
이므로 공식을 유도해보면 n으로 나누었을 때 몫과 나머지가 같은 수의 합은 n(n-1)(n+1)/2로 나타낼 수 있다.
따라서 입력 받은 n을 이용해 바로 위의 공식대로 계산해 출력했다.
728x90
'C & C++ > BOJ' 카테고리의 다른 글
[백준] 2798번: 블랙잭 (0) | 2021.03.11 |
---|---|
[백준] 10809번: 알파벳 찾기 (0) | 2021.03.04 |
[백준] 1731번: 추론 (0) | 2021.03.03 |
[백준] 2908번: 상수 (0) | 2021.02.25 |
[백준] 13235번: 팰린드롬 (0) | 2021.02.25 |