문제
- n이 주어졌을 때, 1부터 n까지 합을 구하는 프로그램을 작성하시오.
입력
- 첫째 줄에 n (1 ≤ n ≤ 10,000)이 주어진다.
출력
- 1부터 n까지 합을 출력한다.
입출력 예제
설명
- 반복문을 사용하지 않고 구했다. 정답 = (n+1) * n / 2
예 n=10 이면 1,2,3,4,5,6,7,8,9,10 을 더하면 되는데 한번의 세트를 거꾸로 나열해서 모두 더하면 전부 11이 된다. 그렇다면 11이 10개가 되고 간단하게 11*10을 하면 110이 된다. 그런데 여기서 우리는 기존의 1~10까지 더해야 되는데 한벌을 더 만들었기 때문에 /2 를 하게되면 55가 나오게 되므로 (n+1) * n / 2 이 성립한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class Main {
// 8393번 - 합
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); //선언
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int number = Integer.parseInt(bf.readLine());
bw.write(((number+1)*number / 2)+"");
bw.close();
}
}
|
cs |
'Algorithm > Baekjoon' 카테고리의 다른 글
백준(2741번) - N 찍기 (0) | 2021.07.04 |
---|---|
백준(15552번) - 빠른 A+B (0) | 2021.07.04 |
백준(10950) - A+B - 3 (0) | 2021.07.04 |
백준(2739번) - 구구단 (0) | 2021.07.04 |
백준(9498번) - 시험 성적 (0) | 2021.06.10 |