aboutsummaryrefslogtreecommitdiff
path: root/challenge-075/abigail/lua/ch-1.lua
diff options
context:
space:
mode:
authorDave Jacoby <jacoby.david@gmail.com>2021-07-12 10:48:31 -0400
committerDave Jacoby <jacoby.david@gmail.com>2021-07-12 10:48:31 -0400
commit34a6514808c066bee4e7f3d7d8bdeb67db056392 (patch)
tree05d0e268045ef3d6f971ec0e0c3eb1a48bdb7edd /challenge-075/abigail/lua/ch-1.lua
parentb59f8f4008bb8ec491a9e89f097f04ce54aed4c0 (diff)
parent1aa7b6eaba2a58fc1ef0612373e3aed6b61f345d (diff)
downloadperlweeklychallenge-club-34a6514808c066bee4e7f3d7d8bdeb67db056392.tar.gz
perlweeklychallenge-club-34a6514808c066bee4e7f3d7d8bdeb67db056392.tar.bz2
perlweeklychallenge-club-34a6514808c066bee4e7f3d7d8bdeb67db056392.zip
Merge branch 'master' of https://github.com/manwar/perlweeklychallenge-club
Diffstat (limited to 'challenge-075/abigail/lua/ch-1.lua')
-rw-r--r--challenge-075/abigail/lua/ch-1.lua43
1 files changed, 43 insertions, 0 deletions
diff --git a/challenge-075/abigail/lua/ch-1.lua b/challenge-075/abigail/lua/ch-1.lua
new file mode 100644
index 0000000000..6d46469469
--- /dev/null
+++ b/challenge-075/abigail/lua/ch-1.lua
@@ -0,0 +1,43 @@
+#!/opt/local/bin/lua
+
+--
+-- See ../README.md
+--
+
+--
+-- Run as: lua ch-1.lua < input-file
+--
+
+function possibilities (target, coins, from, to)
+ if target == 0 then
+ return 1
+ end
+ if target < 0 or from > to then
+ return 0
+ end
+
+ local sum = 0
+
+ for i = 0, math . floor (target / coins [from]) do
+ sum = sum + possibilities (target - i * coins [from],
+ coins, from + 1, to)
+ end
+
+ return sum
+end
+
+
+for line in io . lines () do
+ local target
+ local coins = {}
+ local i
+ for i in line : gmatch ("%d+") do
+ if target == nil then
+ target = tonumber (i)
+ else
+ table . insert (coins, tonumber (i))
+ end
+ end
+ print (possibilities (target, coins, 1, #coins))
+
+end