用户登录  |  用户注册
首 页源码下载网络学院最新源码源码排行屏蔽广告
当前位置:新兴网络 > 网络学院 > Java编程 > Java基础

java 中的递归算法实例

减小字体 增大字体 作者:佚名  来源:本站整理  发布时间:2010-06-23 23:45:44
Java code复制代码
//n阶乘 递归算法
public static int fact(int n)
{
    int ans;
    if(n==0||n==1)
    {
        ans=1;
    }
    else
    {
        ans=n*fact(n-1);
    }
    return(ans);
}
//n阶乘 非递归算法<<
public static int fact1(int n) throws Exception
{
    if(n<0)
    {
        throw(new Exception("不能求<0的整数的阶乘!"));
    }
    int sum=1;
    if(n>1)
    {
        for(int i=2;i<=n;i++)
        {
            sum*=i;
        }
    }
    return(sum);
}

//斐波那契数 递归程序
public static int fibon(int n)
{
    int ans;
    if(n==0||n==1)
    {
        ans=1;
    }
    else
    {
        ans=fibon(n-1)+fibon(n-2);
    }
    return(ans);
}
//斐波那契数 非递归程序
public static int fibon1(int n)
{
    int backitem1=1;
    int backitem2=1;
    int thisitem=1;
    if(n>1)
    {
        for(int i=2;i<=n;i++)
        {
            thisitem=backitem1+backitem2;
            backitem2=backitem1;
            backitem1=thisitem;
        }
    }
    return(thisitem);
}

//汉诺塔问题 递归程序
public static void HanoiTower(int n,char from,char aux,char to)
{
    if(n==1)
    {
        System.out.print("Move disk "+n+" from "+from+"->"+to+"\n");
    }
    else
    {
        HanoiTower(n-1,from,to,aux);
        System.out.print("Move disk "+n+" from "+from+"->"+to+"\n");
        HanoiTower(n-1,aux,from,to);
    }
}

Tags:java 递归算法

作者:佚名
  • 好的评价 如果您觉得此文章好,就请您
      100%(7)
  • 差的评价 如果您觉得此文章差,就请您
      0%(0)

网络学院评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论