학습장/Algorithm

1. 9. 1. Fibonacci Numbers 의 합계 구하기 JAVA

Shin Jaehyun 2018. 4. 22. 23:16
Fibonacci 수열의 합계구하기의 code 입니다. 

보시기 깔끔하라고 일부러 Eclipse 에서 복사해서 가져오기 전에 자동정렬을 한번 하는데, 그렇게 하면 주석이 바로 붙어버리네요.; 

이렇게 입력받은 수가 아닌경우, 즉, 특정한 항까지의 합계를 구하는 경우에는 inputN 대신 그 항의 숫자를 넣어주시면 됩니다. 

package algorithm_Basic;
import java.util.Scanner;
public class Sequence_FibonacciN {
     public static void main(String[] args) {
           // TODO Auto-generated method stub
           int tempN = 0; // 중간에 써줄 수.. 그냥 0 주고 시작하겠습니다.
           int sum = 2; // 1+1은 이미 완료되었다고 전제하고,
           int cntN = 2; // 실행 횟수를 먼저 2를 줍니다.
           int firstN = 1; // 위에서 이미 1 + 1이 완료되어있고, 이제 1 + 1 + 뒤에 나올 2를 tempN에 넣어줄 수 있도록
           int secondN = 1; // firstN과 secondN 에 1로 초기화해줍니다.
           int inputN = 0; // 이번에는 input을 받아서 해당 항까지 진행하도록 할거에요.
           Scanner scan = new Scanner(System.in);
           System.out.printf("Fibonacci 수열의 합구하기. \n 숫자를 입력해주세요.");
           inputN = scan.nextInt();
           do {
                tempN = firstN + secondN;
                sum += tempN;
                cntN++;
                firstN = secondN;
                secondN = tempN;
           } while (cntN < inputN);
           System.out.printf("\n해당 Fibonacci 수열의 %d항까지의 합은\n", inputN);
           System.out.printf("\n%d이며, \n", sum);
           System.out.printf("\n마지막 항의 첫번째 수는  %d,\n두번째 수는  %d입니다.", firstN, secondN);
           scan.close();
     }
}


package algorithm_Basic;
import java.util.Scanner;
public class Sequence_FibonacciN {
     public static void main(String[] args) {
           // TODO Auto-generated method stub
           int tempN = 0; // 중간에 써줄 수.. 그냥 0 주고 시작하겠습니다.
           int sum = 2; // 1+1은 이미 완료되었다고 전제하고,
           int cntN = 2; // 실행 횟수를 먼저 2를 줍니다.
           int firstN = 1; // 위에서 이미 1 + 1이 완료되어있고, 이제 1 + 1 + 뒤에 나올 2를 tempN에 넣어줄 수 있도록
           int secondN = 1; // firstN과 secondN 에 1로 초기화해줍니다.
//         int inputN = 0; // 이번에는 input을 받아서 해당 항까지 진행하도록 할거에요.
           int inputN = 8; // 이번에는 input을 받아서 해당 항까지 진행하도록 할거에요.
//         Scanner scan = new Scanner(System.in);
//         System.out.printf("Fibonacci 수열의 합구하기. \n 숫자를 입력해주세요.");
//         inputN = scan.nextInt();
           do {
                tempN = firstN + secondN;
                sum += tempN;
                cntN++;
                firstN = secondN;
                secondN = tempN;
           } while (cntN < inputN);
           System.out.printf("\n해당 Fibonacci 수열의 %d항까지의 합은\n", inputN);
           System.out.printf("\n%d이며, \n", sum);
           System.out.printf("\n마지막 항의 첫번째 수는  %d,\n두번째 수는  %d입니다.", firstN, secondN);
//         scan.close();
     }
}



얼추 보니 피보나치 수열을 마지막으로 수열에 관한 단락은 끝이 났습니다. 

이제 수학과 자료구조도 진행해보고, 과년도 기출도 보면서 복습도 하고, 공부도 하는 시간을 가져볼 계획입니다. 

이제서야 Visio 한 파일 안에 여러 그림 들어간다는 걸 알았네요. '엑셀 다루는거랑 비슷할까?' 해서 건드려봤는데, 의외의 소득이었습니다.^^