Session

递归基础应用

电脑版发表于: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));
        }


关于TNBLOG
TNBLOG,技术分享。技术交流:群号677373950
ICP备案 :渝ICP备18016597号-1
App store Android
精彩评论
{{item.replyName}}
{{item.content}}
{{item.time}}
{{subpj.replyName}}
@{{subpj.beReplyName}}{{subpj.content}}
{{subpj.time}}
猜你喜欢