JOO's note

피보나치수열 본문

Back-End/알고리즘

피보나치수열

pli3452 2015. 1. 8. 14:01

[4-11] 피보나치(Fibonnaci) 수열(數列)은 앞을 두 수를 더해서 다음 수를 만들어 나가

는 수열이다. 예를 들어 앞의 두 수가 1과 1이라면 그 다음 수는 2가 되고 그 다음 수는

1과 2를 더해서 3이 되어서 1,1,2,3,5,8,13,21,... 과 같은 식으로 진행된다. 1과 1부터

시작하는 피보나치수열의 10번째 수는 무엇인지 계산하는 프로그램을 완성하시오.

[연습문제]/ch4/Exercise4_11.java

public class Exercise4_11 {

public static void main(String[] args) {

// Fibonnaci 수열의 시작의 첫 두 숫자를 1, 1로 한다.

int num1 = 1;

int num2 = 1;

int num3 = 0; // 세번째 값

System.out.print(num1+","+num2);

for (int i = 0 ; i < 8 ; i++ ) {


// (1) 로직작성


}

} // end of main

} // end of class

































[정답]

num3 = num1 + num2; // 세 번째 값은 첫 번째와 두 번째 값을 더해서 얻는다.

System.out.print(","+num3); // 세 번째 수열 출력

num1 = num2; // 두 번째 수열을 첫 번째 값으로 한다.

num2 = num3; // 세 번째 수열을 두 번째 값으로 한다.


/* 피보나치 수열의 10번째 항까지의 합을 구하시오.*/

































[정답]

public class Exam4_11 

{

public static void main(String[] args) 

{

/* 피보나치 수열의 10번째 항까지의 합을 구하시오.*/

int a=1;

int b=1;

int c=a+b;

long sum=2;


for(int i=3; i<=10; i++){

sum+=c;

a=b;

b=c;

c=a+b;

}


System.out.println("sum="+sum); // 10번째 항까지의 합은 143

}

}


Comments