递归基础应用
电脑版发表于:2021/6/9 20:06
前言
什么是递归?
递归使用的就是自己调用自己的方法,并设置一个停止条件,当所有数据都满足到停止条件的时候,递归算法就算结束了
用递归完成斐波拉契数列
1 1 2 3 5 8 13.......N 求第n个的结果
逻辑分析:
f(1) = 1
f(2) = f(2-1) + f(2-2) = 1
f(3) = f(3-1) + f(3-2) = 1+f(1) = 2
f(4) = f(4-1) + f(4-2) = f(3) + f(2) =2+1 = 3
以此类推斐波拉契数列推理公式
f(n) = f(n-1)+f(n-2)
在此公式中n必须大于零,否则永远不会满足f(n) = 1
如果n小于0 则会出现无限递归的情况
//定义一个递归方法 public static long DiGui(long num) { //第一个第二个都是返回1 //也就是数据最终都会解析成DiGui(1)或DiGui(2) //DiGui(1)一般只会出现在num = 1 的时候 if (num == 1 || num == 2) return 1; //根据公式产生递归 return DiGui(num - 1) + DiGui(num - 2); } static void Main(string[] args) { Console.WriteLine(DiGui(10)); }