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/16+1;
switch (Solve%16/2) {
do {
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;
case 0: ;
}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';
}
dW5zaWduZWQgbG9uZyBsb25nIGZpYm9uYWNjaSh1bnNpZ25lZCBsb25nIGxvbmcgU29sdmUpCnsKICAgICAgICBpZiAoU29sdmU8PTEpIHJldHVybiAxOwogICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBFdmVuID0gMDsKICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgT2RkID0gMTsKICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgTG9vcHMgPSBTb2x2ZS8xNisxOwogICAgICAgIHN3aXRjaCAoU29sdmUlMTYvMikgewogICAgICAgICAgICAgICAgZG8gewogICAgICAgICAgICAgICAgRXZlbis9T2RkOyBPZGQrPUV2ZW47CiAgICAgICAgY2FzZSA3OiBFdmVuKz1PZGQ7IE9kZCs9RXZlbjsKICAgICAgICBjYXNlIDY6IEV2ZW4rPU9kZDsgT2RkKz1FdmVuOwogICAgICAgIGNhc2UgNTogRXZlbis9T2RkOyBPZGQrPUV2ZW47CiAgICAgICAgY2FzZSA0OiBFdmVuKz1PZGQ7IE9kZCs9RXZlbjsKICAgICAgICBjYXNlIDM6IEV2ZW4rPU9kZDsgT2RkKz1FdmVuOwogICAgICAgIGNhc2UgMjogRXZlbis9T2RkOyBPZGQrPUV2ZW47CiAgICAgICAgY2FzZSAxOiBFdmVuKz1PZGQ7IE9kZCs9RXZlbjsKICAgICAgICBjYXNlIDA6IDsKICAgICAgICAgICAgICAgIH13aGlsZSgtLUxvb3BzKTsKICAgICAgICB9OwogICAgICAgIHJldHVybiAoU29sdmUmMSA/IE9kZCtFdmVuIDogT2RkKTsKfQoKI2luY2x1ZGUgPGlvc3RyZWFtPgppbnQgbWFpbigpIHsKICAgIGZvcih1bnNpZ25lZCBsb25nIGxvbmcgaT0wOyBpPDkzOyArK2kpCiAgICAgICAgc3RkOjpjb3V0IDw8IGkgPDwgJz0nIDw8IGZpYm9uYWNjaShpKSA8PCAnXG4nOwp9