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

โปรแกรม C++ เพื่อค้นหาตัวเลขฟีโบนักชีโดยใช้ Dynamic Programming


ลำดับฟีโบนักชีเป็นแบบนี้

0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55,……

ในลำดับนี้ เทอมที่ n คือผลรวมของ (n-1) th และ (n-2) th เงื่อนไข

ในการสร้างเราสามารถใช้วิธีเรียกซ้ำได้ แต่ในการเขียนโปรแกรมแบบไดนามิก ขั้นตอนจะง่ายกว่า มันสามารถเก็บตัวเลขฟีโบนักชีทั้งหมดในตาราง โดยใช้ตารางนั้น มันสามารถสร้างเงื่อนไขถัดไปในลำดับนี้ได้อย่างง่ายดาย

ป้อนข้อมูล − นำเลขพจน์มาเป็นอินพุต บอกได้เลยว่า 10

ผลผลิต − 10 th fibinacci เทอมคือ 55

อัลกอริทึม

genFiboSeries(n)

ป้อนข้อมูล

จำนวนเงื่อนไขสูงสุด

ผลผลิต

เทอมฟีโบนักชีที่ n

Begin
define array named fibo of size n+2
fibo[0] := 0
fibo[1] := 1
for i := 2 to n, do
fibo[i] := fibo[i-1] + fibo[i-2]
done
return fibo[n]
End

โค้ดตัวอย่าง

#include<iostream>
using namespace std;
int genFibonacci(int n) {
   int fibo[n+2]; //array to store fibonacci values
   // 0th and 1st number of the series are 0 and 1
   fibo[0] = 0;
   fibo[1] = 1;
   for (int i = 2; i <= n; i++) {
      fibo[i] = fibo[i-1] + fibo[i-2]; //generate ith term using previous
      two terms
   }
   return fibo[n];
}
int main () {
   int n;
   cout << "Enter number of terms: "; cin >>n;
   cout << n<<" th Fibonacci Terms: "<<genFibonacci(n)<<endl;
}

ผลลัพธ์

Enter number of terms: 10
10th Fibonacci Terms: 55