কম্পিউটার

জেকেনডর্ফের উপপাদ্যের জন্য C++ প্রোগ্রাম?


এখানে আমরা দেখব কিভাবে প্রদত্ত যোগফলটি কিছু অ-প্রতিবেশী ফিবোনাচ্চি সংখ্যা যোগ করে পাওয়া যায় কি না, যদি তাই হয়, তাহলে সংখ্যাগুলি কী? উদাহরণস্বরূপ, যদি যোগফলের মান 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

  1. একটি সংখ্যার বিজোড় গুণনীয়কের যোগফল খুঁজে বের করার জন্য C++ প্রোগ্রাম

  2. C++ এ পিরামিডের আয়তনের জন্য প্রোগ্রাম

  3. QuickSort-এর জন্য C++ প্রোগ্রাম?

  4. প্রথম n প্রাকৃতিক সংখ্যার বর্গের সমষ্টির জন্য C++ প্রোগ্রাম?