unsigned long long fibonacci(unsigned long long Solve)
{
if (Solve<=1) return 1;
unsigned long long Even = 0;
unsigned long long Odd = 1;
unsigned long long Loops = (Solve-2)/16+1;
switch (Solve%16/2) {
do {
case 0: Even+=Odd; Odd+=Even;
case 7: Even+=Odd; Odd+=Even;
case 6: Even+=Odd; Odd+=Even;
case 5: Even+=Odd; Odd+=Even;
case 4: Even+=Odd; Odd+=Even;
case 3: Even+=Odd; Odd+=Even;
case 2: Even+=Odd; Odd+=Even;
case 1: Even+=Odd; Odd+=Even;
}while(--Loops);
};
return (Solve&1 ? Odd+Even : Odd);
}
#include <iostream>
int main() {
for(unsigned long long i=0; i<93; ++i)
std::cout << i << '=' << fibonacci(i) << '\n';
}
dW5zaWduZWQgbG9uZyBsb25nIGZpYm9uYWNjaSh1bnNpZ25lZCBsb25nIGxvbmcgU29sdmUpCnsKICAgICAgICBpZiAoU29sdmU8PTEpIHJldHVybiAxOwogICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBFdmVuID0gMDsKICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgT2RkID0gMTsKICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgTG9vcHMgPSAoU29sdmUtMikvMTYrMTsKICAgICAgICBzd2l0Y2ggKFNvbHZlJTE2LzIpIHsKICAgICAgICAgICAgICAgIGRvIHsKICAgICAgICBjYXNlIDA6IEV2ZW4rPU9kZDsgT2RkKz1FdmVuOwogICAgICAgIGNhc2UgNzogRXZlbis9T2RkOyBPZGQrPUV2ZW47CiAgICAgICAgY2FzZSA2OiBFdmVuKz1PZGQ7IE9kZCs9RXZlbjsKICAgICAgICBjYXNlIDU6IEV2ZW4rPU9kZDsgT2RkKz1FdmVuOwogICAgICAgIGNhc2UgNDogRXZlbis9T2RkOyBPZGQrPUV2ZW47CiAgICAgICAgY2FzZSAzOiBFdmVuKz1PZGQ7IE9kZCs9RXZlbjsKICAgICAgICBjYXNlIDI6IEV2ZW4rPU9kZDsgT2RkKz1FdmVuOwogICAgICAgIGNhc2UgMTogRXZlbis9T2RkOyBPZGQrPUV2ZW47CiAgICAgICAgICAgICAgICB9d2hpbGUoLS1Mb29wcyk7CiAgICAgICAgfTsKICAgICAgICByZXR1cm4gKFNvbHZlJjEgPyBPZGQrRXZlbiA6IE9kZCk7Cn0KCiNpbmNsdWRlIDxpb3N0cmVhbT4KaW50IG1haW4oKSB7CiAgICBmb3IodW5zaWduZWQgbG9uZyBsb25nIGk9MDsgaTw5MzsgKytpKQogICAgICAgIHN0ZDo6Y291dCA8PCBpIDw8ICc9JyA8PCBmaWJvbmFjY2koaSkgPDwgJ1xuJzsKfQ==