इस समस्या में, हमें एक संख्या N दी गई है। हमारा कार्य C++ में Nवीं फाइबोनैचि संख्या का अंतिम अंक ढूंढने के लिए एक प्रोग्राम बनाना है।
समस्या विवरण
हमें Nवीं फाइबोनैचि संख्या का अंतिम अंक (यानी LSB) ढूंढना है।
उदाहरण
इनपुट: N = 120 आउटपुट: 1
हल का दृष्टिकोण
एक सरल समाधान Nवें पद को ढूंढने के लिए सीधे फाइबोनैचि सूत्र का उपयोग करना होगा। लेकिन यह विधि तब संभव नहीं होगी जब N एक बड़ी संख्या हो। इसे दूर करने के लिए, हम फाइबोनैचि श्रृंखला के गुण का उपयोग करेंगे कि अंतिम अंक 60 पदों के बाद खुद को दोहराता है। यानी 75वें पद का अंतिम अंक 135वें पद के समान है।
इसका मतलब है कि 60 तक काम करने से हमें सभी संभावित संयोजन मिल जाएंगे और किस पद का उपयोग करना है यह ढूंढने के लिए हम संख्या का 60 से मॉड ढूंढेंगे।
उदाहरण
#include <iostream>
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