Skip to content

Instantly share code, notes, and snippets.

@snowmerak
Last active April 1, 2024 15:11
Show Gist options
  • Save snowmerak/494dd9547ec1990aa306a63028755e4d to your computer and use it in GitHub Desktop.
Save snowmerak/494dd9547ec1990aa306a63028755e4d to your computer and use it in GitHub Desktop.
#include <stdio.h>
int print_uint128(__uint128_t n);
__uint128_t fib(__uint128_t n);
int main() {
for (__uint128_t i = 1; i <= 100; i++) {
printf("fib(");
print_uint128(i);
printf(") = ");
print_uint128(fib(i));
printf("\n");
}
return 0;
}
__uint128_t fib(__uint128_t n) {
__uint128_t a = 0, b = 1, c;
for (__uint128_t i = 0; i < n; i++) {
c = a + b;
a = b;
b = c;
}
return a;
}
int print_uint128(__uint128_t n) {
if (n == 0)
return printf("0");
char str[40] = {0};
char *s = str + sizeof(str) - 1;
while (n != 0) {
if (s == str)
return -1;
*--s = "0123456789"[n % 10];
n /= 10;
}
return printf("%s", s);
}
fib(1) = 1
fib(2) = 1
fib(3) = 2
fib(4) = 3
fib(5) = 5
fib(6) = 8
fib(7) = 13
fib(8) = 21
fib(9) = 34
fib(10) = 55
fib(11) = 89
fib(12) = 144
fib(13) = 233
fib(14) = 377
fib(15) = 610
fib(16) = 987
fib(17) = 1597
fib(18) = 2584
fib(19) = 4181
fib(20) = 6765
fib(21) = 10946
fib(22) = 17711
fib(23) = 28657
fib(24) = 46368
fib(25) = 75025
fib(26) = 121393
fib(27) = 196418
fib(28) = 317811
fib(29) = 514229
fib(30) = 832040
fib(31) = 1346269
fib(32) = 2178309
fib(33) = 3524578
fib(34) = 5702887
fib(35) = 9227465
fib(36) = 14930352
fib(37) = 24157817
fib(38) = 39088169
fib(39) = 63245986
fib(40) = 102334155
fib(41) = 165580141
fib(42) = 267914296
fib(43) = 433494437
fib(44) = 701408733
fib(45) = 1134903170
fib(46) = 1836311903
fib(47) = 2971215073
fib(48) = 4807526976
fib(49) = 7778742049
fib(50) = 12586269025
fib(51) = 20365011074
fib(52) = 32951280099
fib(53) = 53316291173
fib(54) = 86267571272
fib(55) = 139583862445
fib(56) = 225851433717
fib(57) = 365435296162
fib(58) = 591286729879
fib(59) = 956722026041
fib(60) = 1548008755920
fib(61) = 2504730781961
fib(62) = 4052739537881
fib(63) = 6557470319842
fib(64) = 10610209857723
fib(65) = 17167680177565
fib(66) = 27777890035288
fib(67) = 44945570212853
fib(68) = 72723460248141
fib(69) = 117669030460994
fib(70) = 190392490709135
fib(71) = 308061521170129
fib(72) = 498454011879264
fib(73) = 806515533049393
fib(74) = 1304969544928657
fib(75) = 2111485077978050
fib(76) = 3416454622906707
fib(77) = 5527939700884757
fib(78) = 8944394323791464
fib(79) = 14472334024676221
fib(80) = 23416728348467685
fib(81) = 37889062373143906
fib(82) = 61305790721611591
fib(83) = 99194853094755497
fib(84) = 160500643816367088
fib(85) = 259695496911122585
fib(86) = 420196140727489673
fib(87) = 679891637638612258
fib(88) = 1100087778366101931
fib(89) = 1779979416004714189
fib(90) = 2880067194370816120
fib(91) = 4660046610375530309
fib(92) = 7540113804746346429
fib(93) = 12200160415121876738
fib(94) = 19740274219868223167
fib(95) = 31940434634990099905
fib(96) = 51680708854858323072
fib(97) = 83621143489848422977
fib(98) = 135301852344706746049
fib(99) = 218922995834555169026
fib(100) = 354224848179261915075
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment