피보나치 수열의 두 가지 실현 방식

1245 단어 String테스트
피보나치 수열(Fibonacci Sequence)은 황금분할수열이라고도 하는데 이런 수열을 가리킨다. 1, 2, 3, 5, 8, 13, 21...... 수학적으로 피보나치 수열은 다음과 같이 귀속되는 방법으로 정의된다. F0=0, F1=1, Fn=F(n-1)+F(n>=2, n∈N*)
1. 귀속 방식
 
	//n n 
   public static int fibonacci(int n){
		if( n < 0){
			return -1;
		}else if( n == 0){
			return 0;
		}if( n ==1){
			return 1;
		}else {
			return fibonacci(n-1)+fibonacci(n-2);
		}
	}

 
2. 순환 방식
//n n 
	public static int fibonacci2(int n){
		int n0 = 0;
		int n1 = 1;
		int result = 0;
		if( n < 0){
			return -1;
		}else if( n == 0){
			return 0;
		}if(n == 1){
			return 1;
		}else{
			for (int i=2;i<=n;i++){
				result = n0+n1;
				n0 = n1;
				n1 = result;
			}
			return result;
		}
	}

 
3. 실행 결과:
테스트 코드:
 
public static void main(String[] args) {
		// TODO Auto-generated method stub

		for(int i= 1;i<10;i++){
			System.out.print(fibonacci(i)+" ");
		}
		
		System.out.println("//////////");
		
		for(int i= 1;i<10;i++){
			System.out.print(fibonacci2(i)+" ");
		}
	}
운행 결과는 다음과 같다.
        1 1 2 3 5 8 13 21 34
       //////////        1 1 2 3 5 8 13 21 34

좋은 웹페이지 즐겨찾기