정보처리기사 실기 복습 01
17 May 2019
Reading time ~3 minutes
정보처리기사 실기 복습 01
1+2+3+4+… +100까지의 합계
public class Test01 {
public static void main(String[] args) {
int sum = 0;
for(int i=1; i<101; i++) {
sum += i;
System.out.println(i);
}
System.out.println(sum);
}
}
1+3+5+7+.. +99까지의 합계
public class Test02 {
public static void main(String[] args) {
int sum = 0;
for(int i=1; i<100; i+=2) {
sum += i;
System.out.println(i);
}
System.out.println(sum);
}
}
스위치 변수 이용하기
- 1-2+3-4+5-6 … +99-100의 합계
public class Test03 {
public static void main(String[] args) {
int sum = 0;
int flag = -1;
for(int i=1; i<101; i++) {
flag = flag*(-1);
sum += (flag)*i;
System.out.println((flag)*i);
}
System.out.println(sum);
}
}
순서에 의한 반복 계산
- 1-2+3-4+5-6 … -98+99까지의 합계
public class Test04 {
public static void main(String[] args) {
int sum = 0;
for(int i=1; i<100; i++) {
sum += i;
i++;
if (i == 100) {
break;
}
sum += i*(-1);
}
System.out.println(sum);
}
}
홀짝 판별을 이용한 반복 계산
- (-1)x2x(-3)x4(-5)x… x100의 합계
public class Test05 {
// (-1)x2x(-3)x4(-5)x… x100의 합계
public static void main(String[] args) {
int sum = 0;
for(int i=1; i<101; i++) {
if (i%2 == 0) {
sum += i;
} else {
sum += i*(-1);
}
}
System.out.println(sum);
}
}
- -(1/2) + (2/3) - (3/4) + (4/5) - (5/6) … -(99/100)의 합계
public class Test06 {
public static void main(String[] args) {
double sum = 0;
for(int i=1; i<100; i++) {
if (i % 2 == 0) {
sum += i/(double)(i+1);
} else {
sum += (-1)*(i/(double)(i+1));
}
}
System.out.println(sum);
}
}
항사이의 증가하는 값이 일정한 비율로 증가하는 수열
- 1+2+4+7+11+16+22+.. 로 증가하는 수열의 20번째 항까지의 합계
- 이 수열의 합을 구하는 핵심은 각 변수의 초기 값으로 증가 값을 0, 첫 번째 항을 1, 합계를 1로 시작하는 것
public class Test07 {
public static void main(String[] args) {
int sum = 1;
int j = 1;
for(int i=0; i<20; i++) { // 20번 수행
j += i; // 각 항을 저장할 j
System.out.println(j);
sum += j;
}
System.out.println(sum);
}
}
- 1+3+6+10+15+21+28+… 의 순서로 나열되는 수열의 20번째 항까지의 합계
public class Test08 {
// 1+3+6+10+15+21+28+… 의 순서로 나열되는 수열의 20번째 항까지의 합계
public static void main(String[] args) {
int sum = 0;
int j = 0;
for(int i=1; i<21; i++) {
j += i;
sum += j;
System.out.println(i+"번째 항 : "+j);
}
System.out.println(sum);
}
}
항이 바뀔 때마다 빼기와 더하기가 번갈아 나열되는 수열
- -1 +2 -4 +7 -11 + 16 -22 +… 의 순서로 나열되는 수열의 20번째 항까지의 합계
public class Test09 {
// -1 +2 -4 +7 -11 + 16 -22 +… 의 순서로 나열되는 수열의 20번째 항까지의 합계
public static void main(String[] args) {
int sum = 0;
int j = 1;
int k = 0;
int sw = -1;
for(int i=0; i<20; i++) {
j += i;
k = j*(sw);
sum += k;
sw *= -1;
}
System.out.println(sum);
}
}
1! + 2! + 3! + 4!+ .. + 10!의 순서로 나열되는 수열의 10번째 항까지의 합계
public class Test10 {
// 1! + 2! + 3! + 4!+ .. + 10!의 순서로 나열되는 수열의 10번째 항까지의 합계
public static void main(String[] args) {
int sum = 0;
int j = 1;
for(int i=1; i<11; i++) {
j *= i;
sum += j;
}
System.out.println(sum);
}
}
1+1+2+3+5+8+13…의 순서로 나열되는 피보나치 수열의 20번째 항까지의 합계
public class Test11 {
// 1+1+2+3+5+8+13…의 순서로 나열되는 피보나치 수열의 20번째 항까지의 합계
public static void main(String[] args) {
int sum, cnt, c;
int a=1, b=1;
sum = 2;
cnt = 2;
while(true) {
c = a+b;
sum += c;
cnt++;
if (cnt <20) {
a = b;
b = c;
} else {
System.out.println(sum);
break;
}
}
}
}