开胃菜

1.n有n个台阶,一次只能迈一个台阶或者两个台阶,问有多少种迈台阶的方法?
public int fab(int n){
    if(n==0||n==1){
        return 1;
    }
    return fab(n-1)+fab(n-2);
}

2.n利用四种方式求一个数的阶乘

/**
 * 迭代法
 */
public int factorialIteration(int m){
    int fact=1;
    for(int i=2;i<=m;i++){
        fact*=i;
    }
    return fact;

}
/**
 * 下降递归策略
 * 
 */
    public int factorialRecurison(int m){
        if(m==1)
            return 1;
        return m*factorialRecurison(m-1);
    }
/**
 * 上升递归策略
 */
    public int product2(int m,int n){
        if(m==n)
            return n;
        else{
            return m*product2(m+1, n);
        }
    }
/**
 * 等分区间求阶乘
 */
    public static int product(int m,int n) {
        int middle;
        
        if(m==n)
        return m;
        else{
            middle=(m+n)/2;
            return product(m, middle)*product(middle+1, n);
        }
    }

后两种方法不理解其中的意思,请学友们给指点一下。

posted @ 2013-03-08 13:24  ilxx1988  阅读(176)  评论(3编辑  收藏  举报