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

请编写程序。要求分别采用递归方法和非递归方法计算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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值