From ffd1c49cd82e7bd0be11ad57ac31090c0dc99b2e Mon Sep 17 00:00:00 2001 From: Roger Bell_West Date: Tue, 28 Jan 2025 12:18:54 +0000 Subject: RogerBW solutions for challenge no. 306 --- challenge-306/roger-bell-west/lua/ch-1.lua | 43 ++++++++++++++++++++++++++++++ challenge-306/roger-bell-west/lua/ch-2.lua | 34 +++++++++++++++++++++++ 2 files changed, 77 insertions(+) create mode 100755 challenge-306/roger-bell-west/lua/ch-1.lua create mode 100755 challenge-306/roger-bell-west/lua/ch-2.lua (limited to 'challenge-306/roger-bell-west/lua') diff --git a/challenge-306/roger-bell-west/lua/ch-1.lua b/challenge-306/roger-bell-west/lua/ch-1.lua new file mode 100755 index 0000000000..1ab8b6d95c --- /dev/null +++ b/challenge-306/roger-bell-west/lua/ch-1.lua @@ -0,0 +1,43 @@ +#! /usr/bin/lua + +function windowed(a, n) + local out = {} + for i = 1, #a - n + 1 do + local t = {} + for j = i, i + n - 1 do + table.insert(t, a[j]) + end + table.insert(out, t) + end + return out +end + +function oddsum(a) + local out = 0 + local l = 1 + while l <= #a do + for _i, s in ipairs(windowed(a, l)) do + for _j, nn in ipairs(s) do + out = out + nn + end + end + l = l + 2 + end + return out +end + + +if oddsum({2, 5, 3, 6, 4}) == 77 then + io.write("Pass") +else + io.write("FAIL") +end +io.write(" ") + +if oddsum({1, 3}) == 4 then + io.write("Pass") +else + io.write("FAIL") +end +print("") + diff --git a/challenge-306/roger-bell-west/lua/ch-2.lua b/challenge-306/roger-bell-west/lua/ch-2.lua new file mode 100755 index 0000000000..1d3179e5cb --- /dev/null +++ b/challenge-306/roger-bell-west/lua/ch-2.lua @@ -0,0 +1,34 @@ +#! /usr/bin/lua + +function lastelement(a) + local b = a + while true do + table.sort(b) + local f = table.remove(b, #b) + local s = table.remove(b, #b) + if f > s then + table.insert(b, f - s) + end + if #b == 0 then + return 0 + end + if #b == 1 then + return b[1] + end + end +end + +if lastelement({3, 8, 5, 2, 9, 2}) == 1 then + io.write("Pass") +else + io.write("FAIL") +end +io.write(" ") + +if lastelement({3, 2, 5}) == 0 then + io.write("Pass") +else + io.write("FAIL") +end +print("") + -- cgit