java递归简单例子练习

//递归简单的小例子

练习:

//计算1+2+。。。+1000的和

public class d {
    
    int sum=0;
    int i=1;
    public void sum(){
        sum+=i;
        i++;
        if(i<=1000){
            sum();//递归就是调用自身
        }
    }
public static void main(String[] args) {
    d s = new d();
    s.sum();
    System.out.println("计算结果是"+s.sum);
}
}

//===========================

一般来说,递归需要有边界条件、递归前进段和递归返回段。当边界条件不满足时,递归前进;当边界条件满足时,递归返回。

下面我们用递归实现斐波那契数列

:0、1、1、2、3、5、8、13、21、……在数学上,斐波纳契数列以如下被以递归的方法定义:F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2,n∈N*)

求第n个数

//递归简单的小例子
public class d {
public static int sum(int n){
    if(n==0){
        return 0;
    }
    if(n==1 ||n==2){
        return 1;
    }
    return sum(n-1)+sum(n-2);
}
public static void main(String[] args) {
//    d d1 = new d();
    System.out.println(d.sum(8)+"他的值");//因为他的方法是静态的,可以直接调用
    System.out.println("ddd");
}
}

//======================

练习:

递归算法设计的基本思想是:对于一个复杂的问题,把原问题分解为若干个相对简单类同的子问题,继续下去直到子问题简单到能够直接求解,也就是说到了递推的出口,这样原问题就有递推关键要抓住的是: 
(1)递归出口 
(2)地推逐步向出口逼近
得解。

求5的阶乘

add,subtract,multiply与+,-,*本质上是没有区别的.
public class d {
public static int Mutiply(int n){
    if(n==1||n==0){
        return n;
    }
    return n*Mutiply(n-1);
    
}
public static void main(String[] args) {
//    d d1 = new d();
    System.out.println(d.Mutiply(5)+"他的值");//因为他的方法是静态的,可以直接调用
    System.out.println("ddd");
}
}

//===============



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值