递归的应用场景(1) 问题定义是递归的
递归的应用场景(1) 问题定义是递归的
示例:递归法求阶乘 利用公式xn=x×xn-1计算出x的值 int power(intx,intn) { if(n==0) return 1; else return x power(x,n -1 ) ] 可化简为: int power (int x,int n) { return n ==0 1 x power(x,n 1); ]
示例:递归法求阶乘 利用公式 xn = x × xn–1计算出xn的值 int power(int x, int n) { if ( n == 0 ) return 1; else return x * power( ); } 可化简为: int power(int x, int n) { return n == 0 ? 1 : x * power(x, n - 1); } x, n – 1
斐波纳契数列(Fibonacci Sequence) 8 斐波纳契数列:1、1、2、3、5、8、13、21、… ΦF0=1,F1=1 ΦFn=F(n-1)+F(n-2),(n>=2,n∈N) 问题定义是递归的!
斐波纳契数列(Fibonacci Sequence) 斐波纳契数列:1、1、2、3、5、8、13、21、…… F0=1,F1=1 Fn = F(n-1) + F(n-2) ,(n>=2,n∈N) 问题定义是递归的!
斐波纳契数列 ?递归定义式 ne n=0,1 n>l 3非递归定义式: --】
递归定义式 非递归定义式: 斐波纳契数列 − − + = +1 +1 2 1 5 2 1 5 5 1 ( ) n n F n 1 0,1 ( ) ( 1) ( 2) 1 n F n F n F n n = = − + −
斐波纳契数列解法1:递归 long fib1(int n){ if(n<=1){ return 1; } return fib1(n -1)+fib1(n -2); } }
斐波纳契数列解法1:递归 long fib1(int n){ if (n <= 1) { return 1; } else{ return fib1(n - 1) + fib1(n - 2); } }