동호는 내년에 초등학교를 입학한다. 그래서 동호 어머니는 수학 선행 학습을 위해 쉽게 푸는 문제를 동호에게 주었다.
이 문제는 다음과 같다. 1을 한 번, 2를 두 번, 3을 세 번, 이런 식으로 1 2 2 3 3 3 4 4 4 4 5 .. 이러한 수열을 만들고 어느 일정한 구간을 주면 그 구간의 합을 구하는 것이다.
하지만 동호는 현재 더 어려운 문제를 푸느라 바쁘기에 우리가 동호를 도와주자.
이중 for문
을 사용한다.int i=B
가 될 때까지 반복한다.int j=i
가 될 때까지 반복한다.count
누적합을 구한다.A<=count<=B
이면 i
의 누적합을 구한다.package lv_1;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class B1292 {
public static void main(String[] args) throws Exception {
//입력값을 받는다.
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
//받은 입력값을 공백으로 구분해서 각각 a,b에 넣는다.
StringTokenizer st = new StringTokenizer(br.readLine());
int a = Integer.parseInt(st.nextToken());
int b = Integer.parseInt(st.nextToken());
int count = 0; //반복횟수를 체크하기 위한 변수
int result = 0; //범위내 누적합을 구하기 위한 변수
for(int i=1;i<=b;i++) { //i는 몇번까지 반복할까?에 필요하다. 숫자 b까지 반복해야 한다.
for(int j=1;j<=i;j++) { //j는 i를 몇번 반복할까?에 필요하다. i번만큼 반복해야한다.
count++;
if(a<=count && count<=b) { //만약 반복횟수가 a와 b사이라면
result += i; //그때의 데이터 i의 누적합을 구한다.
//만약 i가 7이라고 가정하면, j는 1~7이 된다.
//7이 7번 반복되기 때문에, j의 누적합이 아닌 i의 누적합을 구해야 한다.
}
}
}
System.out.println(result);
}
}