본문으로 바로가기
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
import java.util.Scanner;
 
public class FiboCal {
 
    public static void main(String[] args) {    
        // 1 1 2 3 5 8 13 21 34 55
        Scanner sc = new Scanner(System.in);
        System.out.print("입력하세요: ");
        int input = sc.nextInt();
        sc.close();
        
        int Nor_result = Nor_Fibo(input);
        int Cur_result = Fibo(input,0,1);
        int NotCur_Result = NotRecur(input);
        System.out.println("재귀결과 >> "+ Nor_result);
        System.out.println("꼬리재귀결과 >> "+ Cur_result);
        System.out.println("Not재귀결과 >> "+NotCur_Result);
    }    
    
    static int Nor_Fibo(int input)
    {
        if(input==2return 1;
        if(input==1return 1;
        
        return Nor_Fibo(input-1)+Nor_Fibo(input-2);
    }
    
    
    static int Fibo(int input,int before,int after)
    {
        if(input==1return after; 
        else
            return Fibo(input-1,after,before+after);        
    }
    
    static int NotRecur(int input)
    {
        int sum=0,before=0,after=1;
        
        int temp;
        for(int i=1;i<input;i++)
        {
            temp = after;
            after = after+before;
            before = temp;
        }    
        return after;
    }
}
 
cs


피보나치 수열 1 1 2 3 5 8 13 21 ... 을 코드로 구현해봤습니다.