그럼에도 불구하고

👨‍💻

[CodeUp] 코드업 6079번 입력값과 같거나 작을 때까지만 정수합 구하기 본문

Java, Servlet/Java question

[CodeUp] 코드업 6079번 입력값과 같거나 작을 때까지만 정수합 구하기

zenghyun 2022. 9. 26. 00:05

 

6079번

 

체감 난이도: ★☆

 

1, 2, 3... 을 계속 더해 나갈 때,
그 합이 입력한 정수(0 ~ 1000) 보다 같거나 작을 때까지만
계속 더하는 프로그램을 작성해보자.

즉, 1부터 n까지 정수를 계속 더해 나간다고 할 때,
어디까지 더해야 입력한 수보다 같거나 커지는 지를 알아보고자 하는 문제이다.

입력
정수 1개가 입력된다.

출력
1, 2, 3, 4, 5 ... 를 순서대로 계속 더해 합을 만들어가다가,
입력된 정수와 같거나 커졌을 때, 마지막에 더한 정수를 출력한다.

입력 예시
55

출력 예시
10

 

 

 

풀이

 

Scanner로 값을 입력받아 num이라는 변수에 저장한다. 

 

while을 통해 반복하고 조건문을 만족시키면 종료된다.

 

 

if (num < 0 || num > 1000) {
System.out.println("잘못된 값입니다. 다시 입력하세요");
continue;
}

 

 

continue;를 통해 잘못된 값이 입력되면 다시 값을 입력받는다.

 

 

for (int i = 0; i <= num; i++) {
sum += i;
if (sum > num || sum == num) {
System.out.println("출력 값: " + i);
break wi; // while문을 빠져나옴
}
}

 

sum을 통해 0부터 num까지의 값을 더하다가 

sum의 값이 num보다 커지거나 num과 같아지면 가장 마지막으로 더한 정수 값을 출력한다.

 

 

 

결과값

 

1 + 2 + 3 + 4 + 5 

= 15

 

 

Comments