문제
1+(-2)+3+(-4)+... 과 같은 식으로 계속 더해나갔을 때, 몇까지 더해야 총합이
100이상이 되는지 구하시오.
정답
package Practice;
public class Exercise4_4 {
public static void main(String[] args) {
int sum = 0;
int s = 1;
int num = 0;
for(int i=1; sum<100;i++, s=-s) { // 반복할 때 마다 s의 값은 1,-1,1,-1을 반복한다.
num = s*i;
sum += num;
}
System.out.println("num="+num);
System.out.println("sum="+sum);
}
}
1.문제 핵심 key
- 양수와 음수를 어떻게 번갈아 표현할 것인가?
2.나의 오답원인
- 양수와 음수를 번갈아 쓰는 표현법을 몰랐다.
1이 들어있는 변수(s)를 하나 더 만들고 반복문 안에 음수를 양수값과 곱한다. 그러면 1은 값으로는 의미 없지만 양수와 음수를 나타낼 수 있는 수이기에 양수,음수를 번갈아 값을 나타낸다.
3.새로 알게 된 사실
- for문의 매개변수에 i만 들어갈 수 있는게 아니다.(for문의 매개변수로 sum이 들어갔다.)
- 만약 부호를 바꾸는 작업이 필요하다면 변수(s)를 1로 선언하고 '-'를 붙이는 작업을 반복한다.
'java > 자바의 정석 연습문제 오답노트' 카테고리의 다른 글
[객체지향 프로그래밍1] 연습문제 6-20 (0) | 2022.12.28 |
---|---|
[배열] 연습문제 5-4 (0) | 2022.10.21 |
[조건문과 반복문] 연습문제 4-2 (0) | 2022.09.28 |
[조건문과 반복문] 연습문제 4-3 (0) | 2022.09.28 |
[배열] 연습문제 5-5 (0) | 2022.08.28 |