इस समस्या में, हमें एक नंबर N दिया जाता है। हमारा काम C++ में Nth फाइबोनैचि संख्या के अंतिम अंक को खोजने के लिए एक प्रोग्राम बनाना है।
समस्या का विवरण
हमें नौवें फिबोनाची संख्या का अंतिम अंक (यानी एलएसबी) खोजने की जरूरत है।
समस्या को समझने के लिए एक उदाहरण लेते हैं,
इनपुट:एन =120 आउटपुट:1
समाधान दृष्टिकोण
Nth पद ज्ञात करने के लिए एक सरल समाधान प्रत्यक्ष फाइबोनैचि सूत्र का उपयोग करना होगा। लेकिन यह विधि तब संभव नहीं होगी जब N एक बड़ी संख्या हो। तो इस बात को दूर करने के लिए हम Fibonacci Series के उस गुण का उपयोग करेंगे जो अंतिम अंक 60 पदों के बाद खुद को दोहराता है। अर्थात। 75वें पद का अंतिम अंक वही है जो 135वें पद का है।
इसका मतलब है कि 60 तक काम करने से हमें सभी संभावित संयोजन मिलेंगे और यह पता लगाने के लिए कि किस शब्द का उपयोग करना है, हम 60 के साथ संख्या का मॉड पाएंगे।
उदाहरण
#include using namespace std; long int fibo(int N){ long int a=0,b=1,c; for(int i=2; i< N;i++) { c=a+b; a=b; b=c; } return c; } int findLastDigitNterm(int N) { N = N % 60; return ( fibo(N)%10); } int main() { int N = 683; cout<<"The last digit of "<<N<<"th Fibonacci term is "<<findLastDigitNterm(N); return 0; }
आउटपुट
The last digit of 683th Fibonacci term is 1