/**
* 递归算法的简单应用
* @author QY
* 递归算法x(x(8))需要调用几次函数x(int n)?
*/
public class RecursiveSort {
private static int j = 1;
public static void main(String[] args)
{
int i;
int t = x(8);
System.out.println("t的值为 : "+t);
i = x(t);
System.out.println(i);
}
static int x(int n) {
System.out.println("第 "+j+"次循环,此时n的值为 : "+n);
j++;
if (n <= 3) {
System.out.println("输入return 1");
return 1;
} else {
int y = x(n - 2) + x(n - 4) + 1;
return y;
}
}
}
/**
* 一列数的规则如下: 1、1、2、3、5、8、13、21、34 ,求第30位数是多少?使用递归实现
* @author QY
*
*/
class FibonacciSequence {
public static void main(String[] args){
System.out.println(Fribonacci(9));
}
public static int Fribonacci(int n){
if(n<=2)
return 1;
else
return Fribonacci(n-1)+Fribonacci(n-2);
}
}
递归算法(英语:recursion algorithm)在计算机科学中是指一种通过重复将问题分解为同类的子问题而解决问题的方法。 (简单地说: 递归算法就是直接或间接调用自己的算法。) 递归的作用可以完全取代循环。 |