/**
* @author Administrator
* @문제 [4-4] 1+(-2)+3+(-4)+.. 과 같은 식으로 계속 더해나갔을 때, 몇까지 더해야 총합이 100이상이 되는지 구하시오.
*/
public class ex_004 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
// Ex01();
Ex01();
Ex02();
}
static void Ex01() {
// 홀수면은 + 짝수면은 -
int num = 0;
int count = 0;
int i = 0;
while (num < 100) {
count++;
i++;
if (i % 2 == 0) {
num = num + (i * -1);
} else {
num = num + (i);
}
System.out.println(num);
}
System.out.println("카운트 횟수 : " + count);
}
/**
* 자바의 정석 답.
*/
static void Ex02() {
int sum = 0; // 총합을 저장할 변수
int s = 1; // 값의 부호를 바꿔주는데 사용할 변수
int num = 0;
// 조건식의 값이 true이므로 무한반복문이 된다.
for (int i = 1; true; i++, s = -s) { // 매 반복마다 s의 값은 1, -1, 1, -1...
num = s * i; // i와 부호(s)를 곱해서 더할 값을 구한다.
sum += num;
if (sum >= 100) // 총합이 100보다 같거나 크면 반복문을 빠져 나간다.
break;
}
System.out.println("num=" + num);
System.out.println("sum=" + sum);
}
}
'프로그래밍 > 자바의정석_4_연습문제' 카테고리의 다른 글
[4-6] 두 개의 주사위를 던졌을 때, 눈의 합이 6이 되는 모든 경우의 수를 출력하는 프로그램을 작성하시오. (0) | 2014.08.05 |
---|---|
[4-5] 다음의 for문을 while문으로 변경하시오. (0) | 2014.08.05 |
[4-3] 1+(1+2)+(1+2+3)+(1+2+3+4)+..+(1+2+3+..+10)의 결과를 계산하시오. (0) | 2014.07.24 |
[4-2] 1부터 20까지의 정수 중에서 2 또는 3의 배수가 아닌 수의 총합을 구하시오. (0) | 2014.07.24 |
4.조건문과 반복문 연습문제. (0) | 2014.07.24 |