본문 바로가기

알고리즘

수열의 결과값을 구하는 프로그램

아래 수열의 결과값을 구하는 프로그램을 작성하시오.

 1 - 2 + 3 - 4 + 5 - ..... + 99 - 100 = ?


 - 1부터 계산하는 경우 

private static void plusMinusSequence() {
int result = 1;

for (int i = 1; i < 100; i++) {
if (i % 2 == 0) {
result += i + 1;
} else {
result -= i + 1;
}
}

System.out.println(result);
}

 - 0부터 계산하는 경우


private static void plusMinusSequence2() {
int sum = 0;

for (int i = 0; i <= 100; i++) {
if(i%2 != 0){ //홀수이면
sum += i;
}else {
sum -= i;
}
}

System.out.println(sum);
}


 - Stream을 사용한 경우

 - reduce를 사용할 때 초기값을 넣어주면 return이 int이고 초기값을 넣지 않을 경우 return값이 Optional이다.


private static void  plusMinusSequence3() {
System.out.println(IntStream.rangeClosed(0, 100).reduce(0, (a, b) -> b % 2 !=0 ? a + b : a - b));
System.out.println(IntStream.rangeClosed(0, 100).reduce(SequencialSumAndMinus::sumAndMinus).getAsInt());

}


static class SequencialSumAndMinus {
public static int sumAndMinus(int num1, int num2) {
return num2 % 2 !=0 ? num1 + num2 : num1 - num2;
}
}


'알고리즘' 카테고리의 다른 글

퀵 정렬 알고리즘  (0) 2017.11.15
삽입 정렬 알고리즘  (0) 2017.11.15
버블정렬 알고리즘  (0) 2017.11.15
리스트 정렬하기  (0) 2017.11.15
빅 오 표현법 살표보기  (0) 2017.11.15