• Home
  • About
    • Young's Github Pages photo

      一日不作一日不食

    • About
    • Github
  • Posts
    • All Posts
    • All Tags
  • Projects

정보처리기사 실기 복습 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;
      }
    }
  }
}


정보처리기사실기