欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

递归算法小结,递归小结,/* * 递归算法小结

来源: javaer 分享于  点击 47566 次 点评:248

递归算法小结,递归小结,/* * 递归算法小结


/* * 递归算法小结 */public class DiGui_Demo {    /*     * f(n)= 1+2+...+n = f1(n-1) + n     */    public static int f1(int n) {        if(1 == n) {            return 1;        } else {            return f1(n-1) + n;        }    }    /*     * 斐波拉契序列 1, 2, 3, 5, 8, 13, 21, 34, 55 ...     * f(n) = f(n-1) + f(n-2)     */    public static int f2(int n) {        if(1 == n) {            return 1;        } else if(2 == n) {            return 2;        } else {            return f2(n-1) + f2(n-2);        }    }    /*     * 汉诺塔  次数=2的n次方-1     */    public static void f3(int n, char A, char B, char C) {        if(1 == n) {            System.out.println("将编号为"+n+"的盘子直接从"+A+"柱子移到"+C);        }        else {            f3(n-1, A, C, B);            System.out.println("将编号为"+n+"的盘子直接从"+A+"柱子移到"+C);            f3(n-1, B, A, C);        }    }    /*     * 题目f(n) = 1!+2!+3!...+n!     * f(n) = f(n-1) + n!     * f(n) = f5(n-1) + n! = f5(n-1) + f(4) = f5(n-1) + f4(n-1)*n     */    public static long f5(long n) {        if(1 == n) {            return 1;        } else {            return f5(n-1) + f4(n);        }    }    public static long f4(long n) {        if( 1 == n) {            return 1;        } else {            return n * f4(n-1);        }    }    public static void main(String[] args) {        System.out.println(f1(100));//5050        System.out.println(f2(7));//21        int n = 3;char a = 'A';char b = 'B';char c = 'C';f3(n, a, b, c);//7次        System.out.println(f5(5));//153    }}//该片段来自于http://byrx.net
相关栏目:

用户点评