यहां हम देखेंगे कि कुछ गैर-पड़ोसी फाइबोनैचि संख्याओं को जोड़कर दी गई राशि को कैसे खोजा जाए या नहीं, यदि हां, तो संख्याएं क्या हैं? उदाहरण के लिए यदि दिए गए योग का मान 10 है, तो यह 8 और 2 का योग है। 8 और 2 दोनों फाइबोनैचि शब्द हैं और वे आसन्न नहीं हैं। आइए विचार प्राप्त करने के लिए एल्गोरिथम देखें।
एल्गोरिदम
गैर-पड़ोसीFibo(योग)
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