java/자바의 정석 연습문제 오답노트
[조건문과 반복문] 연습문제 4-4
각시탈코더
2022. 9. 29. 14:30

문제
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로 선언하고 '-'를 붙이는 작업을 반복한다.