본문 바로가기

JAVA/Practice Q

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

// 방법01. while이용 - 내생각

int x = 1;
int y = 1;
int count = 0;
int result = 0;


while (true) {

    if (count == 3) {
        break;
    }


    result = x + y;			// 2 3 5 8 
    x = y;				// 1 2 3 5 
    y = result;				// 2 3 5 8

    count++;				// 0 1 2	--> 이상태에서 count가 3이되면 break에 걸려!

    }
System.out.println(result);

 

 

// 방법02. 강사님 방법

System.out.println("====== 방법02 =======");

int left =1;
int right = 1;
int result2 = 0;

int count2  = 1;

while (count2 <= 3) {
    result2 = left + right;
    left = right;
    right = result2;

    count2++;
}

System.out.println(result2);

 

 

// 방법03. for문 이용

System.out.println("====== 방법03 =======");

int a = 1;
int b = 1;
int answer = 0;
int count3 = 0;


for( ; count3 == 3 ; count3++ ) {// 0 1 2 	---> 1) count 3되는 순간 answer는 8이 잘나오는데....

    answer = a+b;				// 2 3 5 8 
    a = b;					// 1 2 3 5
    b = answer;					// 2 3 5 8
}
System.out.println(answer); // 0 ---> 2) 아니 왜 내가 선언한거 이후에 안변하냐?
			    // 아 for는 조건식이 boolean이어야되지 ★★★★★



System.out.println("========== 방법03-1 ==========");

for( ; count3 < 3 ; count3++ ) {

    answer = a+b;				
    a = b;						
    b = answer;					
}

System.out.println(answer);