В настоящее время я зачислен на курсы по структуре данных и алгоритмам в Coursera.Я столкнулся с проблемой в качестве моего задания.Задача говорит найти последнюю (единичную) цифру суммы n-членов последовательности Фибоначчи.
Например: Вход: 3
Выход: 4
F0 + F1 + F2 + F3 = 0 + 1 + 1 + 2 = 4
Решение для этого я предоставилбыло:
#include <iostream>
using namespace std;
int lastDigit=0;
int fibLastDigit(unsigned long long);
int main() {
unsigned long long terms;
cin>>terms; //0<=n<=10^18
cout<<fibLastDigit(terms);
return 0;
}
int fibLastDigit(unsigned long long nTh) {
int first=0, second=1, third;
if(nTh == 0) {
lastDigit = first;
return lastDigit;
}
else if(nTh == 1) {
lastDigit = second;
return lastDigit;
}
else if(nTh > 1) {
lastDigit = 1;
while(nTh>=2) {
first = first % 10;
second = second % 10;
third = ((first + second)%10);
first = second;
second = third;
lastDigit = (lastDigit + third) % 10;
nTh--;
}
}
return lastDigit;
}
Но код не работает для 832564823476. Консоль зависает и не выводит никаких данных.