数据结构与算法(六)

来源:互联网 发布:共享景观设计 知乎 编辑:程序博客网 时间:2024/05/16 12:18

递归的应用


1. 什么是递归

递归是一种方法调用自己的编程技术。


例:

public class Recusion {public static void main(String[] args){//test();test2(100);}//例一public static void test(){System.out.println("Hello World!");test();}//例二public static void test2(int n){if(n==0){return;}System.out.println(n);test2(n-1);}}

2. 三角数字

该数列中的第n项是由第n-1项加n得到的。


三角数字

public class Triangle {//方法一:循环public static int getNumber(int n){int total=0;while(n>0){total=total+n;n--;}return total;}//方法二:递归public static int getNumberByRecursion(int n){if(n==1){return 1;}else{return n+getNumberByRecursion(n-1);}}}

测试:

public class TestTriangle {public static void main(String[] args) {// TODO Auto-generated method stubSystem.out.println(Triangle.getNumber(400));System.out.println(Triangle.getNumberByRecursion(400));}}

3. Fibonacci数列

该数列的第1项为0,第二项为1,第n项由第n-1项加上第n-2项得到。


Fibonacci数列

public class Fibonacci {public static int getNumber(int n){if(n==1){return 0;}else if(n==2){return 1;}else{return getNumber(n-1)+getNumber(n-2);}}}

测试:

public class TestFibonacci {public static void main(String[] args) {// TODO Auto-generated method stubSystem.out.println(Fibonacci.getNumber(20));}}







0 0
原创粉丝点击