এখানে আমরা দেখব কিভাবে প্রদত্ত যোগফলটি কিছু অ-প্রতিবেশী ফিবোনাচ্চি সংখ্যা যোগ করে পাওয়া যায় কি না, যদি তাই হয়, তাহলে সংখ্যাগুলি কী? উদাহরণস্বরূপ, যদি যোগফলের মান 10 হয় তবে এটি 8 এবং 2 এর যোগফল। 8 এবং 2 উভয়ই ফিবোনাচি পদ এবং তারা সন্নিহিত নয়। আসুন ধারণা পেতে অ্যালগরিদম দেখি।
অ্যালগরিদম
nonNeighbourFibo(sum)
Begin while sum > 0, do fibo := greatest Fibonacci term but not greater than sum print fibo sum := sum - fibo done End
উদাহরণ
#include<iostream> using namespace std; int fibonacci(int n) { if (n == 0 || n == 1) return n; // get the greatest Fibonacci Number smaller than n. int prev = 0, curr = 1, next = 1; while (next <= n) { prev = curr; curr = next; next = prev + curr; } return curr; } void nonNeighbourFibo(int sum) { while (sum > 0) { int fibo = fibonacci(sum); cout << fibo << " "; sum = sum - fibo; } } int main() { int sum = 120; cout << "Sum is same as Non-adjacent Fibonacci terms: "; nonNeighbourFibo(sum); }
আউটপুট
Sum is same as Non-adjacent Fibonacci terms: 89 21 8 2