异常处理、递归和单体程序设计方法1

来源:互联网 发布:余华兄弟读后感知乎 编辑:程序博客网 时间:2024/06/05 08:18

请编写程序。要求分别采用递归方法和非递归方法计算n的阶乘:n!=n*(n-1)*...*1,其中,n为大于0的整数。要求在控制台窗口中分别输出采用这两种方法计算从1到10的阶乘结果。

递归方法

/* * 请编写程序,要求程序用递归算法计算n的阶乘 * n!=n*(n-1)*...*1,期中,n为大于0的整数。 * 要求在控制台窗口输出从1到10的阶乘结果。 */package l_recursion;/** * * @author lonely */public class L_Recursion {    public static int sq_recursion(int i)//递归算法求阶乘    {        if(i<=0)return (0);//小于等于0的情况不计算        if(i==1)            return (1);        return (i*sq_recursion(i-1));    }//sq_recursion结束    public static void main(String[] args) {        for(int i=1;i<=10;i++)       System.out.println(i+"的阶乘结果是"+sq_recursion(i));    }//main is over}//L_Recursion is over

非递归方法

/* * 请编写程序,要求程序用非递归算法计算n的阶乘 * n!=n*(n-1)*...*1,期中,n为大于0的整数。 * 要求在控制台窗口输出从1到10的阶乘结果. */package l_nonrecursion;/** * * @author 唐绍权 */public class L_NonRecursion {    public static int sq_nonRecursion(int i)//非递归算法函数    {        int sum=1;        if(i<=0)//判断n是否小于等于0            return 0;        while(i!=0)        {            sum*=i;            i--;        }//while        return sum;    }    public static void main(String[] args) {        for(int i=1;i<=10;i++)        System.out.println(i+"的阶乘结果是"+sq_nonRecursion(i));    }//main}//L_NonRecursion


0 0
原创粉丝点击