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

ค้นหา GCD ของ N Fibonacci Numbers พร้อมดัชนีที่กำหนดใน C++


ที่นี่เราต้องหา GCD ของ n เงื่อนไขฟีโบนักชีด้วยดัชนีที่กำหนด ดังนั้นในตอนแรก เราต้องได้ค่าดัชนีสูงสุด และสร้างเงื่อนไข Fibonacci เงื่อนไข Fibonacci บางคำจะเป็นดังนี้:0, 1, 1, 2, 3, 5, 8, 13, 21, 34, ….. ดัชนีเริ่มต้นขึ้น จาก 0 ดังนั้นองค์ประกอบที่ 0 th ดัชนีคือ 0 หากเราต้องหา gcd ของเงื่อนไขฟีโบนักชีที่ดัชนี {2, 3, 4, 5} แล้วเทอมคือ {1, 2, 3, 4} ดังนั้น GCD ของตัวเลขเหล่านี้คือ 1

เราจะใช้แนวทางหนึ่งที่น่าสนใจในการทำภารกิจนี้ เพื่อให้ได้ GCD ของ ith และ jth Fibonacci term เช่น GCD(Fibo(i), Fibo(j)) เราสามารถแสดงออกได้เช่น Fibo(GCD(i, j))

ตัวอย่าง

#include <iostream>
#include <algorithm>
using namespace std;
int getFiboTerm(int n){
   int fibo[n + 2];
   fibo[0] = 0; fibo[1] = 1;
   for(int i = 2; i<= n; i++){
      fibo[i] = fibo[i - 1] + fibo[i - 2];
   }
   return fibo[n];
}
int getNFiboGCD(int arr[], int n){
   int gcd = 0;
   for(int i = 0; i < n; i++){
      gcd = __gcd(gcd, arr[i]);
   }
   return getFiboTerm(gcd);
}
int main() {
   int indices[] = {3, 6, 9};
   int n = sizeof(indices)/sizeof(indices[0]);
   cout << "GCD of fibo terms using indices: " <<
   getNFiboGCD(indices, n);
}

ผลลัพธ์

GCD of fibo terms using indices: 2