unsigned long long fibb(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() {
unsigned long long index;
while(std::cin >> index)
std::cout << "fibb(" << index << ") = " << fibb(index) << '\n';
}
CnVuc2lnbmVkIGxvbmcgbG9uZyBmaWJiKHVuc2lnbmVkIGxvbmcgbG9uZyBTb2x2ZSkKewoJaWYgKFNvbHZlPD0xKSByZXR1cm4gMTsKCXVuc2lnbmVkIGxvbmcgbG9uZyBFdmVuID0gMDsKCXVuc2lnbmVkIGxvbmcgbG9uZyBPZGQgPSAxOwoJdW5zaWduZWQgbG9uZyBsb25nIExvb3BzID0gKFNvbHZlLTIpLzE2KzE7Cglzd2l0Y2ggKFNvbHZlJTE2LzIpIHsKCQlkbyB7CgljYXNlIDA6IEV2ZW4rPU9kZDsgT2RkKz1FdmVuOwoJY2FzZSA3OiBFdmVuKz1PZGQ7IE9kZCs9RXZlbjsKCWNhc2UgNjogRXZlbis9T2RkOyBPZGQrPUV2ZW47CgljYXNlIDU6IEV2ZW4rPU9kZDsgT2RkKz1FdmVuOwoJY2FzZSA0OiBFdmVuKz1PZGQ7IE9kZCs9RXZlbjsKCWNhc2UgMzogRXZlbis9T2RkOyBPZGQrPUV2ZW47CgljYXNlIDI6IEV2ZW4rPU9kZDsgT2RkKz1FdmVuOwoJY2FzZSAxOiBFdmVuKz1PZGQ7IE9kZCs9RXZlbjsKCQl9d2hpbGUoLS1Mb29wcyk7Cgl9OwoJcmV0dXJuIChTb2x2ZSYxID8gT2RkK0V2ZW4gOiBPZGQpOwp9CiNpbmNsdWRlIDxpb3N0cmVhbT4KaW50IG1haW4oKSB7CiAgICB1bnNpZ25lZCBsb25nIGxvbmcgaW5kZXg7CiAgICB3aGlsZShzdGQ6OmNpbiA+PiBpbmRleCkKICAgICAgICBzdGQ6OmNvdXQgPDwgImZpYmIoIiA8PCBpbmRleCA8PCAiKSA9ICIgPDwgZmliYihpbmRleCkgPDwgJ1xuJzsKfQ==