菜的像徐坤
排名
6
文章
6
粉丝
16
评论
8
{{item.articleTitle}}
{{item.blogName}} : {{item.content}}
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2024TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术

递归基础应用

3739人阅读 2021/6/9 20:06 总访问:879874 评论: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 则会出现无限递归的情况

  //定义一个递归方法
  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));
        }


评价