From d378b8c2bc4b3896e0041bd1c48407800a088ef3 Mon Sep 17 00:00:00 2001 From: lemon Date: Wed, 17 Aug 2022 10:31:47 +0200 Subject: collatz --- examples/collatz.cff | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 examples/collatz.cff (limited to 'examples') diff --git a/examples/collatz.cff b/examples/collatz.cff new file mode 100644 index 0000000..65b504a --- /dev/null +++ b/examples/collatz.cff @@ -0,0 +1,28 @@ +import "libc.hff"; + +extern fn main() void { + let mem *int = malloc(sizeof int * 4000); + + let cmax = 0; + for let nv = 1; nv < 1000; ++nv { + let n = nv, + c = 0; + while n != 1 { + if n < nv { + c += mem[n]; + break; + } + if (n & 1) != 0 { + n = (3 * n) + 1; + } else { + n /= 2; + } + ++c; + } + mem[nv] = c; + if c > cmax { + cmax = c; + } + } + printf("should print 178: %d\n", cmax); +} -- cgit v1.2.3