---Recursive---递归原则:向已知方向递归
1、已知条件:f(0)=1,f(1)=4,f(n+2)=2*f(n+1)+f(n);推导出:f(n)=2 * f(n - 1) + f(n - 2)。
2、总结出递归表达式。
3、写在最后边的返回值上。
4、表达式是由前边的推导过程得出,就算是口算推导也能算得出
5、代码如下:
package com.algorithm.tiger.queue;
/**
* 已知条件:f(0)=1,f(1)=4,f(n+2)=2*f(n+1)+f(n).
* 推导出:f(n)=2 * f(n - 1) + f(n - 2).
* ---Recursive---递归原则:向已知方向递归
* 1、总结出递归表达式。
* 2、写在最后边的返回值上。
* 3、表达式是由前边的推导过程得出,就算是口算推导也能算得出。
*
* @author tiger
*/
public class Recursive {
public static int f(int n) {
//推导过程
if (n == 0) {
return 1;
} else if (n == 1) {
return 4;
}
//返回表达式,开始递归,由计算机帮助计算。
//!f(n + 2) - 2*f(n + 1);递归原则:向已知方向递归
//当已知条件:f(20)=1,f(21)=4,f(n+2)=2*f(n+1)+f(n)才用上边公式。
return 2 * f(n - 1) + f(n - 2);
}
public static void main(String[] args) {
System.out.println("递归原则:向已知方向递归");
for (int i = 0; i < 10; i++) {
System.out.println("f(" + i + ")=" + f(i));
}
}
}