遞迴補充說明

5
遞遞遞遞遞遞 遞遞遞遞遞遞 ) 1 ( ) ( ) 1 ( ... 2 1 ) 1 ( ... 2 1 ) ( 如如 x f x x f x x f x x f int f(int x) { return x + f(x); }

Upload: alexander-morris

Post on 03-Jan-2016

29 views

Category:

Documents


0 download

DESCRIPTION

遞迴補充說明. int f(int x) { return x + f(x); }. int f(int x) { if(x

TRANSCRIPT

Page 1: 遞迴補充說明

遞迴補充說明遞迴補充說明

)1()(

)1(...21)1(

...21)( 如果

xfxxf

xxf

xxf

int f(int x){ return x + f(x);}

Page 2: 遞迴補充說明

int f(int x){ if(x<1) return 0; else return x + f(x);}

0)0(

)0(1)1(

)1()(

)1(...21)1(

...21)( 如果

f

ff

xfxxf

xxf

xxf

Page 3: 遞迴補充說明

Homework 5Homework 5

利用遞迴及非遞迴方式撰寫利用遞迴及非遞迴方式撰寫 FibonacciFibonacci 的的程式。程式。 UserUser輸入輸入 nn值,計算出值,計算出 Fib(n)Fib(n) Fib(n) = Fib(n-1) + Fib(n-2)Fib(n) = Fib(n-1) + Fib(n-2) Fib(0) = 0, Fib(1) = 1Fib(0) = 0, Fib(1) = 1 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, …0, 1, 1, 2, 3, 5, 8, 13, 21, 34, …

Page 4: 遞迴補充說明

Fib(n) = Fib(n-1) + Fib(n-2)Fib(n) = Fib(n-1) + Fib(n-2)Fib(0) = 0, Fib(1) = 1Fib(0) = 0, Fib(1) = 10, 1, 1, 2, 3, 5, 8, 13, 21, 34, 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, ……

int fib(int n){ if(n<=0) return 0; else if(n==1) return 1; else return fib(n-1)+fib(n-2);}

Page 5: 遞迴補充說明

Fib(n) = Fib(n-1) + Fib(n-2)Fib(n) = Fib(n-1) + Fib(n-2)Fib(0) = 0, Fib(1) = 1Fib(0) = 0, Fib(1) = 10, 1, 1, 2, 3, 5, 8, 13, 21, 34, 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, ……

int fib(int n){ if(n<=0) return 0; else if(n==1) return 1; else return fib(n-1)+fib(n-2);}

int fib(int n){ int sum=0, a=0, b=1; for(int i=0; i<n-1; i++) { sum=a+b; b=sum; a=b; } return sum;}