递归学习

   递归简单学习

     递归是一种方法(函数)调用自已的编程技术,这听起来似乎有点奇怪,或者甚至像是一个灾难性的错误,但是,递归在编程中却是最有趣,又有惊人高效的技术之一。

     就像拽着自己的鞋带拨高一样(你确实有鞋带,是吗?),在第一次遇到递昭归时,它似乎让人觉得难人置信。然而,递归不仅可以解决特定的问题,而且它也为解决很多问题

    提供了一个独特的概念上的框架。

     阶乘问题:

     

package com.java4;

public class FactorialTest
{
	public static void main(String[] args)
	{
		System.out.println(factorial(4));
	}
	
	public static int factorial(int n)
	{
		int result;
		
		if(n==1)
		{
			return 1;
		}
		else
		{
			result=n*factorial(n-1);
		}
		return result;
	}

}

   斐波那契数列:

 

package com.java4;

public class FibonacciTest
{
	public static void main(String[] args)
	{
		System.out.println(fibonacci(8));
	}
	
	public static int fibonacci(int n)
	{
		int result = 0;
		
		if(n==0)
		{
			return 0;
		}
		if(n==1)
		{
			return 1;
		}
		else
		{
		   result = fibonacci(n-1)+fibonacci(n-2);
		}
		return result;
	}
}

  还有一个比较有点的问题就是Hanoi塔问题,也是比较经典的问题。

  排序算法中的快速排序也是运用了递归思想。

   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值