递归算法的大致含义
递归算法是一种直接或者间接调用自身函数或者方法的算法。说简单了就是程序自身的调用。
来方便使用。
递归算法就是将原问题不断分解为规模缩小的子问题,然后递归调用方法来表示 问题的解。(用同一个方法去解决规模不同的问题)
递归算法多用于解决的问题
1、阶乘
2、斐波纳契数列
3、杨辉三角问题
下面是两个例题的简单函数定义
阶乘
#include<stdio.h>
//利用递归实现阶乘
public static long f(int n)
{
if(n==1)//递归终止的判断条件
return 1;
return n*f(n-1);//缩小问题的规模,依次递归。
}
//不利用递归实现阶乘
public static long Fac(int n)
{
long result = n;
while(n > 1)
{
n--;
result = result * n;
}
return result;
}
斐波纳契数列
public static int fibonacci(int n)
{
if(n==1||n==2)//递归终止条件
{
return 1;
}
return fibonacci(n-1)+fibonacci(n-2);//利用递归进行相加
}