zoukankan      html  css  js  c++  java
  • C#算法之递推法

      1:斐波那契数列算法,如:1,1,2,3,5,8,13,21…… ,可以看到这里面的规律吧.就是每一项是前面相邻两项之和.求第N项。

           递归法:  

    1 public static int Fibonacci(int n) { 
    2                 //参数合法性验证 
    3                 if (n < 1)
    4                     Console.WriteLine("参数必须大于1!");
    5                 if (n == 1 || n == 2) 
    6                     return 1;
    7                 else 
    8                     return Fibonacci(n - 1) + Fibonacci(n - 2); 
    9         }     
      非递归方式 
     2   public static int fx(int n) { 
     3                 //参数合法性验证 
     4                 if (n < 1) 
     5                     Console.WriteLine("参数必须大于1!"); 
     6                 //n为1或2时候直接返回值 
     7                 if (n == 1 || n == 2) return 1; 
     8                 //n>2时候循环求值 
     9                 int Nn = 0; 
    10                 int N1 = 1; 
    11                 int N2 = 1; 
    12                 for (int i = 3; i <= n; i++) {
    13                     Nn = N1 + N2;
    14                     N1 = N2;
    15                     N2 = Nn; 
    16                 }
    17                 return Nn; 
    18         } 

        总结:递归的代码简单些,不过递归总体来说是以内存换时间,速度快,耗内存。

                 非递归比较省内存,速度稍微慢些。
        出题:1,5,11,27,65,157,。。。,N。求第N项是多少?斐波那契变式。
     
     1 public static int Fibonacci(int n) { 
     2                 //参数合法性验证 
     3                 if (n < 1)
     4                     Console.WriteLine("参数必须大于1!");
     5                 if (n == 1)
     6                     return 1;
     7                 else if (n == 2)
     8                     return 5;
     9                 else 
    10                     return Fibonacci(n - 1)*2 + Fibonacci(n - 2); 
    11         }

      有空大家可以思考其他方式。

  • 相关阅读:
    @ExceptionHandler
    使用Vue.extend实现iview Upload在单文件上传时,拖拽多个文件给出错误提示
    spring 常用的注入方式
    SpringMVC框架
    Redis
    事务的隔离性以及隔离级别
    Qt的获取和安装
    C++ 指针delete 及 指针delete后赋值为NULL
    图形流水线
    freeglut的安装步骤
  • 原文地址:https://www.cnblogs.com/apsnet/p/2578643.html
Copyright © 2011-2022 走看看