菜的像徐坤
排名
7
文章
192
粉丝
15
评论
16
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术

递归基础应用

4026人阅读 2021/6/9 20:06 总访问:960906 评论:0 收藏:0 手机
分类: .net

前言

什么是递归?
递归使用的就是自己调用自己的方法,并设置一个停止条件,当所有数据都满足到停止条件的时候,递归算法就算结束了

用递归完成斐波拉契数列                         

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 则会出现无限递归的情况

  1.   //定义一个递归方法
  2.   public static long DiGui(long num)
  3.         {
  4.             //第一个第二个都是返回1 
  5.             //也就是数据最终都会解析成DiGui(1)或DiGui(2)
  6.             //DiGui(1)一般只会出现在num = 1 的时候
  7.             if (num == 1 || num == 2)
  8.                 return 1;
  9.                     //根据公式产生递归
  10.             return DiGui(num - 1) + DiGui(num - 2);
  11.         }
  12.         static void Main(string[] args)
  13.         {
  14.                         
  15.             Console.WriteLine(DiGui(10));
  16.         }


评价