diff options
| author | Roger Bell_West <roger@firedrake.org> | 2025-01-28 12:18:54 +0000 |
|---|---|---|
| committer | Roger Bell_West <roger@firedrake.org> | 2025-01-28 12:18:54 +0000 |
| commit | ffd1c49cd82e7bd0be11ad57ac31090c0dc99b2e (patch) | |
| tree | b2ef3d7b4f57f9c049bbc3d1279f32074b4c3470 /challenge-306/roger-bell-west/lua | |
| parent | 4bb3874d4bbd36d0b85b74031a74479faa9306b7 (diff) | |
| download | perlweeklychallenge-club-ffd1c49cd82e7bd0be11ad57ac31090c0dc99b2e.tar.gz perlweeklychallenge-club-ffd1c49cd82e7bd0be11ad57ac31090c0dc99b2e.tar.bz2 perlweeklychallenge-club-ffd1c49cd82e7bd0be11ad57ac31090c0dc99b2e.zip | |
RogerBW solutions for challenge no. 306
Diffstat (limited to 'challenge-306/roger-bell-west/lua')
| -rwxr-xr-x | challenge-306/roger-bell-west/lua/ch-1.lua | 43 | ||||
| -rwxr-xr-x | challenge-306/roger-bell-west/lua/ch-2.lua | 34 |
2 files changed, 77 insertions, 0 deletions
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("") + |
