문제
n이 주어졌을 때, 1부터 n까지 합을 구하는 프로그램을 작성하시오.
입력
첫째 줄에 n (1 ≤ n ≤ 10,000)이 주어진다.
출력
1부터 n까지 합을 출력한다.
| 예제 입력 | 예제 출력 |
| 3 | 6 |
⭕ 풀이
import java.io.*;
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());
int sum = 0;
for(int i=1;i<=n;i++){
sum += i;
}
System.out.println(sum);
}
}
for문내에서 증가되는 i의 값을 누적해서 받을 변수 sum을 for문밖에서 선언한다.
for문 안에서 선언하면 계속 0으로 초기화되기때문에 의미가 없어진다.
그렇게 sum에 증가하는 i를 누적하고 출력하면되는 평범한 누적합 반복문이다.
✅ 다른분의풀이
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);
br.close();
}
}
15가 주어졌다면 15*(15+1) 240이나오고 2로나누면 120이된다.
1부터 15까지 누적합을 해도 120이 된다.
수포자라 이런생각은 못해봤다.. 신기하다
-출처
https://www.acmicpc.net/problem/8393
'Algorithm > Baekjoon(Java)' 카테고리의 다른 글
| [백준/JAVA] 2741 : N 찍기 (0) | 2022.07.09 |
|---|---|
| [백준/JAVA] 15552 : 빠른 A+B (0) | 2022.07.09 |
| [백준/JAVA] 10950 : A+B - 3 (0) | 2022.07.07 |
| [백준/JAVA] 2739 : 구구단 (0) | 2022.07.06 |
| [백준/JAVA] 2480 : 주사위 세개 (0) | 2022.07.05 |