#include <stdio.h> #include <stdint.h> #define PRIu64 "llu" uint64_t fibonacci(unsigned int n) { switch (n) { case 0: return 0; case 1: return 1; default: { uint64_t u_l = 0; uint64_t u_r = 1; uint64_t u_y; for (unsigned int i = 1; i < n; ++i) { u_y = u_l + u_r; u_l = u_r; u_r = u_y; } return u_y; } } } int main() { const long double r_r5 = sqrtl((long double)5.0); const long double r_phi = ((long double)1.0 + r_r5) / (long double)2.0; long double r_fibonacci; uint64_t u_fibonacci; for (unsigned int i = 0; i < 94; ++i) { r_fibonacci = ((powl(r_phi, (long double)i) - powl((long double)1.0 - r_phi, (long double)i)) / r_r5); u_fibonacci = truncl(r_fibonacci); fibonacci(i), r_fibonacci, u_fibonacci); } return 0; }
Standard input is empty
n = 0(1) 0 0.000000 -> 0 n = 1(1) 1 1.000000 -> 1 n = 2(1) 1 1.000000 -> 1 n = 3(1) 2 2.000000 -> 2 n = 4(1) 3 3.000000 -> 3 n = 5(1) 5 5.000000 -> 5 n = 6(1) 8 8.000000 -> 8 n = 7(2) 13 13.000000 -> 13 n = 8(2) 21 21.000000 -> 21 n = 9(2) 34 34.000000 -> 34 n = 10(2) 55 55.000000 -> 55 n = 11(2) 89 89.000000 -> 89 n = 12(3) 144 144.000000 -> 144 n = 13(3) 233 233.000000 -> 233 n = 14(3) 377 377.000000 -> 377 n = 15(3) 610 610.000000 -> 610 n = 16(3) 987 987.000000 -> 987 n = 17(4) 1597 1597.000000 -> 1597 n = 18(4) 2584 2584.000000 -> 2584 n = 19(4) 4181 4181.000000 -> 4181 n = 20(4) 6765 6765.000000 -> 6765 n = 21(5) 10946 10946.000000 -> 10946 n = 22(5) 17711 17711.000000 -> 17711 n = 23(5) 28657 28657.000000 -> 28657 n = 24(5) 46368 46368.000000 -> 46368 n = 25(5) 75025 75025.000000 -> 75025 n = 26(6) 121393 121393.000000 -> 121393 n = 27(6) 196418 196418.000000 -> 196418 n = 28(6) 317811 317811.000000 -> 317811 n = 29(6) 514229 514229.000000 -> 514229 n = 30(6) 832040 832040.000000 -> 832040 n = 31(7) 1346269 1346269.000000 -> 1346269 n = 32(7) 2178309 2178309.000000 -> 2178309 n = 33(7) 3524578 3524578.000000 -> 3524578 n = 34(7) 5702887 5702887.000000 -> 5702887 n = 35(7) 9227465 9227465.000000 -> 9227465 n = 36(8) 14930352 14930352.000000 -> 14930352 n = 37(8) 24157817 24157817.000000 -> 24157817 n = 38(8) 39088169 39088169.000000 -> 39088169 n = 39(8) 63245986 63245986.000000 -> 63245986 n = 40(9) 102334155 102334155.000000 -> 102334155 n = 41(9) 165580141 165580141.000000 -> 165580141 n = 42(9) 267914296 267914296.000000 -> 267914296 n = 43(9) 433494437 433494437.000000 -> 433494437 n = 44(9) 701408733 701408733.000000 -> 701408733 n = 45(10) 1134903170 1134903170.000000 -> 1134903170 n = 46(10) 1836311903 1836311903.000000 -> 1836311903 n = 47(10) 2971215073 2971215073.000000 -> 2971215073 n = 48(10) 4807526976 4807526976.000000 -> 4807526976 n = 49(10) 7778742049 7778742049.000000 -> 7778742049 n = 50(11) 12586269025 12586269025.000000 -> 12586269025 n = 51(11) 20365011074 20365011074.000000 -> 20365011074 n = 52(11) 32951280099 32951280099.000000 -> 32951280099 n = 53(11) 53316291173 53316291173.000000 -> 53316291173 n = 54(11) 86267571272 86267571272.000000 -> 86267571272 n = 55(12) 139583862445 139583862445.000000 -> 139583862445 n = 56(12) 225851433717 225851433717.000000 -> 225851433717 n = 57(12) 365435296162 365435296162.000000 -> 365435296162 n = 58(12) 591286729879 591286729879.000000 -> 591286729879 n = 59(12) 956722026041 956722026041.000000 -> 956722026041 n = 60(13) 1548008755920 1548008755920.000000 -> 1548008755920 n = 61(13) 2504730781961 2504730781961.000000 -> 2504730781961 n = 62(13) 4052739537881 4052739537881.000000 -> 4052739537881 n = 63(13) 6557470319842 6557470319842.000001 -> 6557470319842 n = 64(14) 10610209857723 10610209857723.000001 -> 10610209857723 n = 65(14) 17167680177565 17167680177565.000002 -> 17167680177565 n = 66(14) 27777890035288 27777890035288.000004 -> 27777890035288 n = 67(14) 44945570212853 44945570212853.000008 -> 44945570212853 n = 68(14) 72723460248141 72723460248141.000008 -> 72723460248141 n = 69(15) 117669030460994 117669030460994.000015 -> 117669030460994 n = 70(15) 190392490709135 190392490709135.000031 -> 190392490709135 n = 71(15) 308061521170129 308061521170129.000031 -> 308061521170129 n = 72(15) 498454011879264 498454011879264.000061 -> 498454011879264 n = 73(15) 806515533049393 806515533049393.000122 -> 806515533049393 n = 74(16) 1304969544928657 1304969544928657.000244 -> 1304969544928657 n = 75(16) 2111485077978050 2111485077978050.000244 -> 2111485077978050 n = 76(16) 3416454622906707 3416454622906707.000488 -> 3416454622906707 n = 77(16) 5527939700884757 5527939700884757.000977 -> 5527939700884757 n = 78(16) 8944394323791464 8944394323791464.000977 -> 8944394323791464 n = 79(17) 14472334024676221 14472334024676221.001953 -> 14472334024676221 n = 80(17) 23416728348467685 23416728348467685.003906 -> 23416728348467685 n = 81(17) 37889062373143906 37889062373143906.003906 -> 37889062373143906 n = 82(17) 61305790721611591 61305790721611591.007812 -> 61305790721611591 n = 83(17) 99194853094755497 99194853094755497.015625 -> 99194853094755497 n = 84(18) 160500643816367088 160500643816367088.031250 -> 160500643816367088 n = 85(18) 259695496911122585 259695496911122585.031250 -> 259695496911122585 n = 86(18) 420196140727489673 420196140727489673.062500 -> 420196140727489673 n = 87(18) 679891637638612258 679891637638612258.125000 -> 679891637638612258 n = 88(19) 1100087778366101931 1100087778366101931.125000 -> 1100087778366101931 n = 89(19) 1779979416004714189 1779979416004714189.250000 -> 1779979416004714189 n = 90(19) 2880067194370816120 2880067194370816120.500000 -> 2880067194370816120 n = 91(19) 4660046610375530309 4660046610375530309.500000 -> 4660046610375530309 n = 92(19) 7540113804746346429 7540113804746346430.500000 -> 7540113804746346430 n = 93(20) 12200160415121876738 12200160415121876740.000000 -> 12200160415121876740