Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

วิธีการใช้ Fibonacci โดยใช้วิธีการจากบนลงล่างโดยใช้ C #?


ลำดับฟีโบนักชีคือชุดของตัวเลขที่ขึ้นต้นด้วยหนึ่งหรือศูนย์ ตามด้วยหนึ่ง และดำเนินการตามกฎที่แต่ละหมายเลข (เรียกว่าหมายเลขฟีโบนักชี) เท่ากัน เป็นผลรวมของตัวเลขสองตัวก่อนหน้า วิธีการจากบนลงล่างมุ่งเน้นไปที่การแยกปัญหาใหญ่ออกเป็นชิ้นเล็ก ๆ และเข้าใจได้ ความซับซ้อนของพื้นที่คือ O(N) เนื่องจากเรากำลังสร้างหน่วยความจำอาร์เรย์พิเศษซึ่งเท่ากับขนาดของตัวเลข

ความซับซ้อนของเวลา − O(N)

ความซับซ้อนของอวกาศ − O(N)

ตัวอย่าง

public class DynamicProgramming{
   public int fibonacciTopdownApproach(int n,int[] dpArr ){
      if(n==0 || n == 1){
         return n;
      }
      if(dpArr[n] != 0){
         return dpArr[n];
      }
      int res = fibonacciTopdownApproach(n - 1,dpArr) + fibonacciTopdownApproach(n - 2,dpArr);
      return dpArr[n] = res ;
   }
}

static void Main(string[] args){
   DynamicProgramming dp = new DynamicProgramming();
   int[] dpArr = new int[150];
   Console.WriteLine(dp.fibonacciTopdownApproach(12, dpArr));
}

ผลลัพธ์

144