-1+3-5+7-9+11-13+15-17...



1-3+5-7+9-11+13-15+17...

홀수가 증가하며 교차로 부호가 +/- 로 바뀌며 기준점까지 총합을 구하는 코드입니다.


근데 왜 아래 코드 가운데 정렬이 안 풀릴까요..

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
public class MPswapSum {
 
    public static void main(String[] args) {
        int minusStart = minusStart(100);
        System.out.println(minusStart);
        int plusStart = plusStart(100);
        System.out.println(plusStart);
    }
 
    public static int minusStart(int finishedNum) {
        int sum = 0;
        for (int i = 1; i <= finishedNum; i++) {
            if (i % 2 == 1) {
                if (sum >= 0) {
                    sum += (i * -1);
                } else if (sum < 0) {
                    sum += i;
                }
            }
        }
        return sum;
    }
 
    public static int plusStart(int finishedNum) {
        int sum = 0;
        for (int i = 1; i <= finishedNum; i++) {
            if (i % 2 == 1) {
                if (sum <= 0) {
                    sum += i;
                } else if (sum > 0) {
                    sum += (i * -1);
                }
            }
        }
        return sum;
    }
 
}
cs




결과 :



1부터 100까지 홀수끼리 합, 짝수끼리 합을 구하는 코드입니다.
저는 따로 startedNum과 finishedNum으로 매개변수를 설정하여
동적인 범위의 홀수 및 짝수값을 구하도록 했습니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
package Study_2707;
 
public class Sum1to100 {
 
    public static void main(String args[]) {
        oddSum(110);
        evenSum(110);
    }
 
    public static int oddSum(int startedNum, int finishedNum) {
        int oddSum = 0;
        for (int i = startedNum; i <= finishedNum; i++) {
            if (i % 2 == 1) {
                System.out.println(oddSum + " + " + i + " = " + (oddSum + i));
                oddSum += i;
            }
        }
        return oddSum;
    }
 
    public static int evenSum(int startedNum, int finishedNum) {
        int evenSum = 0;
        for (int i = startedNum; i <= finishedNum; i++) {
            if (i % 2 == 0) {
                System.out.println(evenSum + " + " + i + " = " + (evenSum + i));
                evenSum += i;
            }
        }
        return evenSum;
    }
 
}
 
cs






결과 : 



for문을 이용하여 1부터 100까지 합을 구했습니다.



1
2
3
4
5
6
7
8
9
10
11
12
public class Sum1to100 {
 
    public static void main(String[] args) {
        int sum = 0;
        for(int i=1; i<=100; i++) {
            System.out.println(sum + " + " + i + " = " + (sum+i));
            sum += i;
        }
        System.out.println(sum);
    }
 
}
cs





결과 : 



정보처리기사 / 정보처리산업기사 실기시험 알고리즘의

Section008 - 소수의 합 구하기 입니다.


Section008.java


public class Test008 {

	public static void main(String[] args) {
		int A=7;
		
		int HAP=0;
		int K=2;
		int J;
		int CNT=0;
		
		while(true) {
			J = 2;
			while(true){
				System.out.println("K="+K+" J="+J);
				if( (K%J)==0 ) {
					if( K == J ) {	// 4를 찾는 경우, 4까지 온 경우
						System.out.println("소수:"+K);
						HAP = HAP + K;
						CNT = CNT + 1;
						break;
					}
					else
						break;	// 4를 찾는데, 2에서 나누어진 경우
				}
				else {
					J = J + 1;
				}
			}	// inner loop
			if( K < A ) {
				K = K + 1;
			}
			else {
				break;
			}
		}
/*		
		for(K=2; K <= A; K++) {
			for(J=2; J < K; J++) {
				System.out.println("K="+K+" J="+J);
				if( (K%J)==0 ) {
					break;
				}
			}
			if( J == K ) {
				System.out.println("소수:"+K);
				HAP = HAP + K;
				CNT = CNT + 1;
			}
		}
*/		
		System.out.println("소수갯수="+CNT+" 소수합:"+HAP);
	}

}

정보처리기사 / 정보처리산업기사 실기시험 알고리즘의

Section004 - 1+2+4+7+11+16+22+... 증가하는 수열의 합입니다.

변수 k는 이해하기 쉽게 sum으로 사용 하였습니다.



Section004.java

public class Section004 {

	public static void main(String[] args) {
		int i = 0;
		int j = 1;		// 수열 각 항이 저장될 변수
		int sum = 1;	// 수열 각 항이 누적될(합) 변수
		
		for(i=1; i<20; i++) {
			j = j+i;
			sum = sum + j;
			//System.out.println("i = " + i + " & j = " + j + " & sum = " + sum);
		}
		System.out.println(sum);
	}
}




결과 값

1350

정보처리기사 / 정보처리산업기사 실기시험 알고리즘의

Section001, 1부터 100까지 합입니다.

변수 j는 이해하기 쉽게 sum으로 사용 하였습니다.



Section001.java

public class Section001 {

	public static void main(String[] args) {
		int i = 0;
		int sum = 0;	// j 대신 사용
		
		for(i=1; i<=100; i++) {
			sum = sum + i;
			//System.out.println(i + "번째 합 = " + sum);
		}
		System.out.println("1부터 100까지 합 = " + sum);
	}
}



실행화면


5050


+ Recent posts