diff options
author | David Timber <dxdt@dev.snart.me> | 2024-10-28 18:37:47 +0100 |
---|---|---|
committer | David Timber <dxdt@dev.snart.me> | 2024-10-28 18:37:47 +0100 |
commit | df4600a84251d94634b78fd258378ea0c2269516 (patch) | |
tree | aab4d3aff15968e1aebfaf2442bc6ceff6b508e3 /writeups/multiprecision/fibo.mjs | |
parent | a3f6fe1c6b0bda7db9ab95a5d1bc180fdb72f573 (diff) |
Add writeups/multiprecision
Diffstat (limited to 'writeups/multiprecision/fibo.mjs')
-rwxr-xr-x | writeups/multiprecision/fibo.mjs | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/writeups/multiprecision/fibo.mjs b/writeups/multiprecision/fibo.mjs new file mode 100755 index 0000000..1cc9b10 --- /dev/null +++ b/writeups/multiprecision/fibo.mjs @@ -0,0 +1,37 @@ +#!/bin/env node + +function do_fibo (num_f) { + let a, b, c; + + a = num_f('0'); + b = num_f('1'); + + for (let i = 0; i < 101; i += 1) { + c = a + b; + console.info(c.toString()); + b = a; + a = c; + } +} + +function parse_flag (s) { + s = s.toLowerCase(); + + if (s === 'true') { + return true; + } + else if (s === 'false') { + return false; + } + + return Number(s); +} + +const flag = process.argv.length > 2 ? parse_flag(process.argv[2]) : true; + +if (flag) { + do_fibo(BigInt); +} +else { + do_fibo(Number); +} |