SlideServe
Menu
Préférences
© SlideServe · v2026

D ata s tructures

chogan avatar
53 diapositives · 763 Views · Sep 08, 2014

D ata s tructures. 02.1: r ecursive f unctions. 동의대학교 멀티미디어공학과 이광의 교수. T oday’s t opic. 재귀함수의 예와 동작방법 계승 함수와 그 동작방법 피보나치 함수와 그 동작방법 최소공배수 함수 mathematical induction 수학적 귀납법 계승 함수의 증명 피보나치 함수의 증명 최소공배수 함수의 증명 재귀함수의 활용 징검다리 건너기 당근 캐기 거북이 옮기기. e xamples o f r ecursive f unction.

D ata s tructures - slide 1
01 / 53D ata s tructures
1 / 17

Télécharger la présentation

D ata s tructures
Une image / un lien ci-dessous est fourni (tel quel) pour télécharger la présentation

Politique de téléchargement : le contenu du site vous est fourni TEL QUEL pour votre information et votre usage personnel ; il ne peut être vendu, concédé sous licence ni partagé sur d’autres sites sans l’accord de son auteur.Le contenu vous est fourni TEL QUEL, pour votre information et votre usage personnel uniquement. Téléchargez la présentation en cliquant sur ce lien. Lors du téléchargement, si vous ne parvenez pas à télécharger une présentation, l’éditeur a peut-être supprimé le fichier de son serveur.Pendant le téléchargement, si vous ne parvenez pas à obtenir une présentation, le fichier a peut-être été supprimé par l’éditeur.

F I N

Plus de contenu associé

Transcription de la présentation
  1. Data structures 02.1: recursivefunctions 동의대학교 멀티미디어공학과 이광의 교수

  2. Today’s topic • 재귀함수의 예와 동작방법 • 계승 함수와 그 동작방법 • 피보나치 함수와 그 동작방법 • 최소공배수 함수 • mathematical induction수학적 귀납법 • 계승 함수의증명 • 피보나치 함수의 증명 • 최소공배수 함수의 증명 • 재귀함수의 활용 • 징검다리 건너기 • 당근 캐기 • 거북이 옮기기 Dept. of Multimedia Engineering, DongEui Univ.

  3. examples of recursive function • 재귀, 재귀적 구조 그리고 재귀함수란 무엇인가? • recursion재귀: ? • recursive structure재귀적 구조: 자기 내부에 자기자신과 동일한 구조를 포함하는 구조 • recursive function재귀함수: 자기자신을 호출하는 함수 • 재귀함수의 예 • factorial function계승함수 • fibonacci sequence피보나치 수열 • greatest common divisor최대공약수 Dept. of Multimedia Engineering, DongEui Univ.

  4. examples of recursive function • n! factorial계승 함수의정의[wikipedia.org] • 계승함수는다음과 같이 정의된다. • 1! = 1; • 5! = 1*2*3*4*5 = 120; • 6! = 1*2*3*4*5*6 = 720; • 또는 재귀적으로 다음과 같이 정의된다. • 0! = 1; • 1! = 1(0!) = 1*1 = 1; • 2! = 2(1!) = 2*1 = 2; • 5! = 5(4!) = 5*4! = 5*4*3! = 5*4*3*2! = 5*4*3*2*1! = 5*4*3*2*1 = 120; Dept. of Multimedia Engineering, DongEui Univ.

  5. examples of recursive function • 계승함수의 구현 • intfactorial (int n) { // n>0intrFac (int n) { // n>0; • int f = 1; if (n==1) return 1; // if (n==0) return 1; • for (inti=1; i<=n; i++) { elsereturn n*rFac (n-1); • f = f*i; } • } • return f; void main ( ) { • } cout << rFac(3); // 6을 출력 • } Dept. of Multimedia Engineering, DongEui Univ.

  6. examples of recursive function • 계승함수의 구현 • intrFac (int n) { // n>0; • if (n==1) return 1; // if (n==0) return 1; • elsereturn n*rFac (n-1); • } • void main ( ) { • cout << rFac(3); // 6을 출력 • } Dept. of Multimedia Engineering, DongEui Univ.

  7. examples of recursive function • 계승함수의 동작 • intrFac (int n) { // n>0; • if (n==1) return 1; // if (n==0) return 1; • elsereturn n*rFac (n-1); • } • void main ( ) { • cout << rFac(3); // 6을 출력 • } • void main ( ) {◀ • cout << rFac(3); • } 실행과정 Dept. of Multimedia Engineering, DongEui Univ.

  8. examples of recursive function • 계승함수의 동작 • intrFac (int n) { // n>0; • if (n==1) return 1; // if (n==0) return 1; • elsereturn n*rFac (n-1); • } • void main ( ) { • cout << rFac(3); // 6을 출력 • } • void main ( ) { intrFac(3) { • cout << rFac(3);◀ if (3==1) return 1; • return 3*rFac(2); • } } 실행과정 Dept. of Multimedia Engineering, DongEui Univ.

  9. examples of recursive function • 계승함수의 동작 • intrFac (int n) { // n>0; • if (n==1) return 1; // if (n==0) return 1; • elsereturn n*rFac (n-1); • } • void main ( ) { • cout << rFac(3); // 6을 출력 • } • void main ( ) { intrFac(3) {◀ • cout << rFac(3);◀ if (3==1) return 1; • return 3*rFac(2); • } } 실행과정 Dept. of Multimedia Engineering, DongEui Univ.

  10. examples of recursive function • 계승함수의 동작 • intrFac (int n) { // n>0; • if (n==1) return 1; // if (n==0) return 1; • elsereturn n*rFac (n-1); • } • void main ( ) { • cout << rFac(3); // 6을 출력 • } • void main ( ) { intrFac(3) { • cout << rFac(3);◀ if (3==1) return 1;◀ • return 3*rFac(2); • } } 실행과정 Dept. of Multimedia Engineering, DongEui Univ.

  11. examples of recursive function • 계승함수의 동작 • intrFac (int n) { // n>0; • if (n==1) return 1; // if (n==0) return 1; • elsereturn n*rFac (n-1); • } • void main ( ) { • cout << rFac(3); // 6을 출력 • } • void main ( ) { intrFac(3) { • cout << rFac(3);◀ if (3==1) return 1; • return 3*rFac(2);◀ • } } 실행과정 Dept. of Multimedia Engineering, DongEui Univ.

  12. examples of recursive function • 계승함수의 동작 • intrFac (int n) { // n>0; • if (n==1) return 1; // if (n==0) return 1; • elsereturn n*rFac (n-1); • } • void main ( ) { • cout << rFac(3); // 6을 출력 • } • void main ( ) { intrFac(3) { intrFac(2) { • cout << rFac(3);◀ if (3==1) return 1; if (2==1) return 1; • return 3*rFac(2);◀ return 2*rFac(1); • } } } 실행과정 Dept. of Multimedia Engineering, DongEui Univ.

  13. examples of recursive function • 계승함수의 동작 • intrFac (int n) { // n>0; • if (n==1) return 1; // if (n==0) return 1; • elsereturn n*rFac (n-1); • } • void main ( ) { • cout << rFac(3); // 6을 출력 • } • void main ( ) { intrFac(3) { intrFac(2) {◀ • cout << rFac(3);◀ if (3==1) return 1; if (2==1) return 1; • return 3*rFac(2);◀ return 2*rFac(1); • } } } 실행과정 Dept. of Multimedia Engineering, DongEui Univ.

  14. examples of recursive function • 계승함수의 동작 • intrFac (int n) { // n>0; • if (n==1) return 1; // if (n==0) return 1; • elsereturn n*rFac (n-1); • } • void main ( ) { • cout << rFac(3); // 6을 출력 • } • void main ( ) { intrFac(3) { intrFac(2) { • cout << rFac(3);◀ if (3==1) return 1; if (2==1) return 1;◀ • return 3*rFac(2);◀ return 2*rFac(1); • } } } 실행과정 Dept. of Multimedia Engineering, DongEui Univ.

  15. examples of recursive function • 계승함수의 동작 • intrFac (int n) { // n>0; • if (n==1) return 1; // if (n==0) return 1; • elsereturn n*rFac (n-1); • } • void main ( ) { • cout << rFac(3); // 6을 출력 • } • void main ( ) { intrFac(3) { intrFac(2) { intrFac(1) { • cout << rFac(3);◀ if (3==1) return 1; if (2==1) return 1; if (1==1) return 1; • return 3*rFac(2);◀ return 2*rFac(1);◀ return 1*rFac(0); • } } } } 실행과정 Dept. of Multimedia Engineering, DongEui Univ.

  16. examples of recursive function • 계승함수의 동작 • intrFac (int n) { // n>0; • if (n==1) return 1; // if (n==0) return 1; • elsereturn n*rFac (n-1); • } • void main ( ) { • cout << rFac(3); // 6을 출력 • } • void main ( ) { intrFac(3) { intrFac(2) { intrFac(1) {◀ • cout << rFac(3);◀ if (3==1) return 1; if (2==1) return 1; if (1==1) return 1; • return 3*rFac(2);◀ return 2*rFac(1);◀ return 1*rFac(0); • } } } } 실행과정 Dept. of Multimedia Engineering, DongEui Univ.

  17. examples of recursive function • 계승함수의 동작 • intrFac (int n) { // n>0; • if (n==1) return 1; // if (n==0) return 1; • elsereturn n*rFac (n-1); • } • void main ( ) { • cout << rFac(3); // 6을 출력 • } • void main ( ) { intrFac(3) { intrFac(2) { intrFac(1) { • cout << rFac(3);◀ if (3==1) return 1; if (2==1) return 1; if (1==1) return 1;◀ • return 3*rFac(2);◀ return 2*rFac(1);◀ return 1*rFac(0); • } } } } 실행과정 Dept. of Multimedia Engineering, DongEui Univ.

  18. examples of recursive function • 계승함수의 동작 • intrFac (int n) { // n>0; • if (n==1) return 1; // if (n==0) return 1; • elsereturn n*rFac (n-1); • } • void main ( ) { • cout << rFac(3); // 6을 출력 • } • void main ( ) { intrFac(3) { intrFac(2) { intrFac(1) { • cout << rFac(3);◀ if (3==1) return 1; if (2==1) return 1; if (1==1) return 1;◀ • return 3*rFac(2);◀ return 2*rFac(1);◀ return 1*rFac(0); • } } } } 실행과정 1 Dept. of Multimedia Engineering, DongEui Univ.

  19. examples of recursive function • 계승함수의 동작 • intrFac (int n) { // n>0; • if (n==1) return 1; // if (n==0) return 1; • elsereturn n*rFac (n-1); • } • void main ( ) { • cout << rFac(3); // 6을 출력 • } • void main ( ) { intrFac(3) { intrFac(2) { • cout << rFac(3);◀ if (3==1) return 1; if (2==1) return 1; • return 3*rFac(2);◀ return 2*rFac(1);◀ • } } } 실행과정 1 Dept. of Multimedia Engineering, DongEui Univ.

  20. examples of recursive function • 계승함수의 동작 • intrFac (int n) { // n>0; • if (n==1) return 1; // if (n==0) return 1; • elsereturn n*rFac (n-1); • } • void main ( ) { • cout << rFac(3); // 6을 출력 • } • void main ( ) { intrFac(3) { intrFac(2) { • cout << rFac(3);◀ if (3==1) return 1; if (2==1) return 1; • return 3*rFac(2);◀ return 2*rFac(1);◀ • } } } 실행과정 2 1 Dept. of Multimedia Engineering, DongEui Univ.

  21. examples of recursive function • 계승함수의 동작 • intrFac (int n) { // n>0; • if (n==1) return 1; // if (n==0) return 1; • elsereturn n*rFac (n-1); • } • void main ( ) { • cout << rFac(3); // 6을 출력 • } • void main ( ) { intrFac(3) { • cout << rFac(3);◀ if (3==1) return 1; • return 3*rFac(2);◀ • } } 실행과정 2 Dept. of Multimedia Engineering, DongEui Univ.

  22. examples of recursive function • 계승함수의 동작 • intrFac (int n) { // n>0; • if (n==1) return 1; // if (n==0) return 1; • elsereturn n*rFac (n-1); • } • void main ( ) { • cout << rFac(3); // 6을 출력 • } • void main ( ) { intrFac(3) { • cout << rFac(3);◀ if (3==1) return 1; • return 3*rFac(2);◀ • } } 실행과정 6 2 Dept. of Multimedia Engineering, DongEui Univ.

  23. examples of recursive function • 계승함수의 동작 • intrFac (int n) { // n>0; • if (n==1) return 1; // if (n==0) return 1; • elsereturn n*rFac (n-1); • } • void main ( ) { • cout << rFac(3); // 6을 출력 • } • void main ( ) { • cout << rFac(3);◀ • } • 6이출력됨 실행과정 6 Dept. of Multimedia Engineering, DongEui Univ.

  24. examples of recursive function • 계승함수의 동작 • intrFac (int n) { // n>0; • if (n==1) return 1; // if (n==0) return 1; • elsereturn n*rFac (n-1); • } • void main ( ) { • cout << rFac(3); // 6을 출력 • } • void main ( ) { • cout << rFac(3); • }◀ • 6이출력됨 • 프로그램 종료됨 실행과정 Dept. of Multimedia Engineering, DongEui Univ.

  25. examples of recursive function • 계승함수의 동작 • intrFac (int n) { // n>0; • if (n==1) return 1; // if (n==0) return 1; • elsereturn n*rFac (n-1); • } • void main ( ) { • cout << rFac(3); // 6을 출력 • } • void main ( ) {◀ • cout << rFac(3); • } main () 실행과정 Dept. of Multimedia Engineering, DongEui Univ.

  26. examples of recursive function • 계승함수의 동작 • intrFac (int n) { // n>0; • if (n==1) return 1; // if (n==0) return 1; • elsereturn n*rFac (n-1); • } • void main ( ) { • cout << rFac(3); // 6을 출력 • } • void main ( ) { intrFac(3) { • cout << rFac(3);◀ if (3==1) return 1; • return 3*rFac(2); • } } rFac() main () 실행과정 Dept. of Multimedia Engineering, DongEui Univ.

  27. examples of recursive function • 계승함수의 동작 • intrFac (int n) { // n>0; • if (n==1) return 1; // if (n==0) return 1; • elsereturn n*rFac (n-1); • } • void main ( ) { • cout << rFac(3); // 6을 출력 • } • void main ( ) { intrFac(3) {◀ • cout << rFac(3);◀ if (3==1) return 1; • return 3*rFac(2); • } } rFac() N=3 main () 실행과정 Dept. of Multimedia Engineering, DongEui Univ.

  28. examples of recursive function • 계승함수의 동작 • intrFac (int n) { // n>0; • if (n==1) return 1; // if (n==0) return 1; • elsereturn n*rFac (n-1); • } • void main ( ) { • cout << rFac(3); // 6을 출력 • } • void main ( ) { intrFac(3) { • cout << rFac(3);◀ if (3==1) return 1;◀ • return 3*rFac(2); • } } rFac() N=3 main () 실행과정 Dept. of Multimedia Engineering, DongEui Univ.

  29. examples of recursive function • 계승함수의 동작 • intrFac (int n) { // n>0; • if (n==1) return 1; // if (n==0) return 1; • elsereturn n*rFac (n-1); • } • void main ( ) { • cout << rFac(3); // 6을 출력 • } • void main ( ) { intrFac(3) { • cout << rFac(3);◀ if (3==1) return 1; • return 3*rFac(2);◀ • } } rFac() N=3 main () 실행과정 Dept. of Multimedia Engineering, DongEui Univ.

  30. examples of recursive function • 계승함수의 동작 • intrFac (int n) { // n>0; • if (n==1) return 1; // if (n==0) return 1; • elsereturn n*rFac (n-1); • } • void main ( ) { • cout << rFac(3); // 6을 출력 • } • void main ( ) { intrFac(3) { intrFac(2) { • cout << rFac(3);◀ if (3==1) return 1; if (2==1) return 1; • return 3*rFac(2);◀ return 2*rFac(1); • } } } rFac () rFac() N=3 main () 실행과정 Dept. of Multimedia Engineering, DongEui Univ.

  31. examples of recursive function • 계승함수의 동작 • intrFac (int n) { // n>0; • if (n==1) return 1; // if (n==0) return 1; • elsereturn n*rFac (n-1); • } • void main ( ) { • cout << rFac(3); // 6을 출력 • } • void main ( ) { intrFac(3) { intrFac(2) {◀ • cout << rFac(3);◀ if (3==1) return 1; if (2==1) return 1; • return 3*rFac(2);◀ return 2*rFac(1); • } } } rFac () N=2 rFac() N=3 main () 실행과정 Dept. of Multimedia Engineering, DongEui Univ.

  32. examples of recursive function • 계승함수의 동작 • intrFac (int n) { // n>0; • if (n==1) return 1; // if (n==0) return 1; • elsereturn n*rFac (n-1); • } • void main ( ) { • cout << rFac(3); // 6을 출력 • } • void main ( ) { intrFac(3) { intrFac(2) { • cout << rFac(3);◀ if (3==1) return 1; if (2==1) return 1;◀ • return 3*rFac(2);◀ return 2*rFac(1); • } } } rFac () N=2 rFac() N=3 main () 실행과정 Dept. of Multimedia Engineering, DongEui Univ.

  33. rFac () examples of recursive function • 계승함수의 동작 • intrFac (int n) { // n>0; • if (n==1) return 1; // if (n==0) return 1; • elsereturn n*rFac (n-1); • } • void main ( ) { • cout << rFac(3); // 6을 출력 • } • void main ( ) { intrFac(3) { intrFac(2) { intrFac(1) { • cout << rFac(3);◀ if (3==1) return 1; if (2==1) return 1; if (1==1) return 1; • return 3*rFac(2);◀ return 2*rFac(1);◀ return 1*rFac(0); • } } } } rFac () N=2 rFac() N=3 main () 실행과정 Dept. of Multimedia Engineering, DongEui Univ.

  34. rFac () examples of recursive function • 계승함수의 동작 • intrFac (int n) { // n>0; • if (n==1) return 1; // if (n==0) return 1; • elsereturn n*rFac (n-1); • } • void main ( ) { • cout << rFac(3); // 6을 출력 • } • void main ( ) { intrFac(3) { intrFac(2) { intrFac(1) {◀ • cout << rFac(3);◀ if (3==1) return 1; if (2==1) return 1; if (1==1) return 1; • return 3*rFac(2);◀ return 2*rFac(1);◀ return 1*rFac(0); • } } } } N=1 rFac () N=2 rFac() N=3 main () 실행과정 Dept. of Multimedia Engineering, DongEui Univ.

  35. rFac () examples of recursive function • 계승함수의 동작 • intrFac (int n) { // n>0; • if (n==1) return 1; // if (n==0) return 1; • elsereturn n*rFac (n-1); • } • void main ( ) { • cout << rFac(3); // 6을 출력 • } • void main ( ) { intrFac(3) { intrFac(2) { intrFac(1) { • cout << rFac(3);◀ if (3==1) return 1; if (2==1) return 1; if (1==1) return 1;◀ • return 3*rFac(2);◀ return 2*rFac(1);◀ return 1*rFac(0); • } } } } N=1 rFac () N=2 rFac() N=3 main () 실행과정 Dept. of Multimedia Engineering, DongEui Univ.

  36. rFac () examples of recursive function • 계승함수의 동작 • intrFac (int n) { // n>0; • if (n==1) return 1; // if (n==0) return 1; • elsereturn n*rFac (n-1); • } • void main ( ) { • cout << rFac(3); // 6을 출력 • } • void main ( ) { intrFac(3) { intrFac(2) { intrFac(1) { • cout << rFac(3);◀ if (3==1) return 1; if (2==1) return 1; if (1==1) return 1;◀ • return 3*rFac(2);◀ return 2*rFac(1);◀ return 1*rFac(0); • } } } } 1 N=1 rFac () N=2 rFac() N=3 main () 실행과정 1 Dept. of Multimedia Engineering, DongEui Univ.

  37. examples of recursive function • 계승함수의 동작 • intrFac (int n) { // n>0; • if (n==1) return 1; // if (n==0) return 1; • elsereturn n*rFac (n-1); • } • void main ( ) { • cout << rFac(3); // 6을 출력 • } • void main ( ) { intrFac(3) { intrFac(2) { • cout << rFac(3);◀ if (3==1) return 1; if (2==1) return 1; • return 3*rFac(2);◀ return 2*rFac(1);◀ • } } } 1 rFac () N=2 rFac() N=3 main () 실행과정 1 Dept. of Multimedia Engineering, DongEui Univ.

  38. examples of recursive function • 계승함수의 동작 • intrFac (int n) { // n>0; • if (n==1) return 1; // if (n==0) return 1; • elsereturn n*rFac (n-1); • } • void main ( ) { • cout << rFac(3); // 6을 출력 • } • void main ( ) { intrFac(3) { intrFac(2) { • cout << rFac(3);◀ if (3==1) return 1; if (2==1) return 1; • return 3*rFac(2);◀ return 2*rFac(1);◀ • } } } 1 rFac () 2 N=2 rFac() N=3 main () 실행과정 2 1 Dept. of Multimedia Engineering, DongEui Univ.

  39. examples of recursive function • 계승함수의 동작 • intrFac (int n) { // n>0; • if (n==1) return 1; // if (n==0) return 1; • elsereturn n*rFac (n-1); • } • void main ( ) { • cout << rFac(3); // 6을 출력 • } • void main ( ) { intrFac(3) { • cout << rFac(3);◀ if (3==1) return 1; • return 3*rFac(2);◀ • } } 2 rFac() N=3 main () 실행과정 2 Dept. of Multimedia Engineering, DongEui Univ.

  40. examples of recursive function • 계승함수의 동작 • intrFac (int n) { // n>0; • if (n==1) return 1; // if (n==0) return 1; • elsereturn n*rFac (n-1); • } • void main ( ) { • cout << rFac(3); // 6을 출력 • } • void main ( ) { intrFac(3) { • cout << rFac(3);◀ if (3==1) return 1; • return 3*rFac(2);◀ • } } 2 rFac() 6 N=3 main () 실행과정 6 2 Dept. of Multimedia Engineering, DongEui Univ.

  41. examples of recursive function • 계승함수의 동작 • intrFac (int n) { // n>0; • if (n==1) return 1; // if (n==0) return 1; • elsereturn n*rFac (n-1); • } • void main ( ) { • cout << rFac(3); // 6을 출력 • } • void main ( ) { • cout << rFac(3);◀ • } • // 6이출력됨 6 main () 실행과정 6 Dept. of Multimedia Engineering, DongEui Univ.

  42. examples of recursive function • 계승함수의 동작 • intrFac (int n) { // n>0; • if (n==1) return 1; // if (n==0) return 1; • elsereturn n*rFac (n-1); • } • void main ( ) { • cout << rFac(3); // 6을 출력 • } • void main ( ) { • cout << rFac(3); • }◀ • // 6이출력됨 • // 프로그램 종료됨 main () 실행과정 Dept. of Multimedia Engineering, DongEui Univ.

  43. examples of recursive function • Fibonacci number피보나치수의 정의 • In mathematics, the Fibonacci numbers are the following sequence of numbers: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, … • By definition, the first two Fibonacci numbers are 0 and 1, and each remaining number is the sum of the previous two. • Some sources omit the initial 0, instead beginning the sequence with two 1s. • In mathematical terms, the sequence Fn of Fibonacci numbers is defined by the recurrence relation with seed values: Dept. of Multimedia Engineering, DongEui Univ.

  44. examples of recursive function • 피보나치 수를 계산하는 피보나치 함수의 구현 • intfibonaaci (int n) { intrF(int n) { // assume that n>=0 • intfibo[n+1]; if (n<2) return n; // if (n==0||n==1) return n; • fibo[0] = 0; else return rF(n-1)+rF(n-2); • fibo[1] = 1; } • for (inti=2; i<=n; i++) { • fibo[i] = fibo[i-1]+fibo[i-2]; void main ( ) { • } cout << rF(4); • return fibo[n]; } • } 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, … 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, … Dept. of Multimedia Engineering, DongEui Univ.

  45. examples of recursive function • 피보나치 함수의 동작 • intrF(int n) { // assume that n>=0 • if (n<2) return n; • return rF(n-1)+rF(n-2); • } • void main ( ) { • cout << rF(0); • } main () 0 0 rF(0) Dept. of Multimedia Engineering, DongEui Univ.

  46. examples of recursive function • 피보나치 함수의 동작 • intrF(int n) { // assume that n>=0 • if (n<2) return n; • return rF(n-1)+rF(n-2); • } • void main ( ) { • cout << rF(1); • } main () 1 1 rF(1) Dept. of Multimedia Engineering, DongEui Univ.

  47. examples of recursive function • 피보나치 함수의 동작 • intrF(int n) { // assume that n>=0 • if (n<2) return n; • return rF(n-1)+rF(n-2); • } • void main ( ) { • cout << rF(2); • } main () 2 1 rF(2) 1 0 rF(1) 1 rF(0) 0 Dept. of Multimedia Engineering, DongEui Univ.

  48. examples of recursive function • 피보나치 함수의 동작 • intrF(int n) { // assume that n>=0 • if (n<2) return n; • return rF(n-1)+rF(n-2); • } • void main ( ) { • cout << rF(3); • } main () 3 2 rF(3) 2 1 rF(2) 1 rF(1) 1 1 0 rF(1) 1 0 rF(0) Dept. of Multimedia Engineering, DongEui Univ.

  49. examples of recursive function • 피보나치 함수의 동작 • intrF(int n) { // assume that n>=0 • if (n<2) return n; • return rF(n-1)+rF(n-2); • } • void main ( ) { • cout << rF(4); • } main () 4 3 rF(4) 3 2 rF(3) 2 rF(2) 1 0 2 1 1 rF(2) 1 1 rF(1) rF(1) 1 rF(0) 0 1 0 rF(1) rF(0) 1 0 Dept. of Multimedia Engineering, DongEui Univ.

  50. examples of recursive function • 피보나치 함수의 동작 • intrF(int n) { // assume that n>=0 • if (n<2) return n; • return rF(n-1)+rF(n-2); • } • void main ( ) { • cout << rF(4); • } main () 6 8 rF(6) 5 4 rF(5) 5 rF(4) 3 2 4 3 3 rF(4) 3 2 rF(3) rF(3) 2 rF(2) 1 Dept. of Multimedia Engineering, DongEui Univ.