java递归的使用

这篇博客探讨了递归编程的概念,通过计算斐波那契数列和阶乘来阐述其工作原理。递归在处理数据结构如树和堆时显得尤为简洁,但同时也存在内存消耗大和时间效率低的缺点。示例代码展示了如何用Java实现斐波那契数列的递归计算,并提供了阶乘的递归解决方案。递归虽然编写简单,但在实际应用中需要权衡其性能成本。
摘要由CSDN通过智能技术生成
5.5递归

程序调用自身的编程技巧成为递归

计算斐波那契数列
    
求任意一项对应的斐波那契数列的值。
    
1,1,23,5,8,13,21......
public static long feibo(int n){
	long num1 = 1;
	long num2 = 1;
	long cur = num1+num2;
for(int i = 4;i<=n;i++){
	num1 = num2;
	num2 = cur;
	cur = num1+num2;
}
	return cur;
}
  • 递归的优势

    • 编写简单
    • 数据结构而言;树,堆这样的结构使用递归特别简单
  • 劣势

    • 耗内存
    • 时间成本高
import java.util.Scanner;
public class test {
    public static void main(String[] args) {
        /**
         * 求阶乘
         */
        //输入一个数
        Scanner scanner=new Scanner(System.in);
        int getin = scanner.nextInt();
        int factorial = Factorial(getin,1);
        System.out.println(factorial);
    }
    public  static  int Factorial(int getin,int num){
        if (getin>1){
             num=num*getin;
            return Factorial(getin-1,num);
        }else {
            return num;
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值