카테고리 없음
[C++] 피보나치(fibonacci) 수열 출력하기
s뽈록이s
2013. 9. 11. 15:57
void fibonacci(int su) { int arr[2] = {0, 1}, i, temp; cout << arr[0] << "\t"; if(su > 1)cout << arr[1] << "\t"; temp = arr[0] + arr[1]; arr[0] = arr[1]; arr[1] = temp; for(i = 0; i < su - 2; i++) { cout << temp << "\t"; temp = arr[0] + arr[1]; arr[0] = arr[1]; arr[1] = temp; } cout << endl; } void main() { int su; back: cout << "출력할 피보나치 수열의 갯수 : "; cin >> su; if(su < 1) { cout << "잘못된 갯수를 입력하셨습니다." << endl; goto back; } fibonacci(su); }
프로그램 실행화면
출력할 피보나치 수열의 갯수를 입력해주면 해당 갯수만큼 피보나치 수열을 만들어 출력해 주는 함수를 만들어봤다. 피보나치 수열은 처음 0, 1로 시작해서 바로 옆에 있는 숫자와 더한 값이 그 다음 값이 되는 수열이다.
프록램 실행화면을 보면 조금 더 쉽게 이해될 것이다. 0, 1을 더해서 3번째 값이 1이 되는 것이다. 이렇게 해서 계속 숫자의 값이 증가하게 되어있다.
fibonacci() 함수를 보면 알겠지만 처음에는 0, 1을 출력해준다. 이 값은 arr[2]에 저장되어 있다. arr[0] = arr[1];이 되고 arr[1]자리에는 이전에 arr[0], arr[1]의 더한 값을 짛어 넣어주고 계속해서 arr[1]을 출력해 주면 된다.
이것은 for문을 보면 이해될 것이다. 스왑하기 위해서 temp라는 변수를 두었고 temp에 출력해야 하는 값이 들어있다.