import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
System.out.println(n*(n+1)/2);
}
}
for문 무시... 그냥 어릴적 배운 수학 공식 사용.
1~n까지의 합은 n*(n+1)/2;
[주의]
곱셉 나눗셈 교환법칙으로 인해
n*(n+1)/2 = (n/2)*(n+1)
처음에 후자로 코딩했다가 값이 다르게 나왔다.
(사유 : n이 int형이므로 n/2하다가 반내림 됨)
구지 후자를 쓰고자 한다면
1) int로 입력 받고
2) double 형변환 해서 계산
3) 다시 int로 변환해서 출력
'알고리즘 > acmicpc.net' 카테고리의 다른 글
11022 (0) | 2020.07.08 |
---|---|
11021. (0) | 2020.07.08 |
2741. N찍 & 2742.N반대로찍 (0) | 2020.07.08 |
15552. Fast A+B (0) | 2020.07.08 |
acmicpc.net => 백준의 알고리즘 사이트. (0) | 2020.07.07 |