diff options
| author | 冯昶 <seaker@qq.com> | 2021-04-23 11:23:51 +0800 |
|---|---|---|
| committer | 冯昶 <seaker@qq.com> | 2021-04-23 11:23:51 +0800 |
| commit | 9f5a7a1af0399189b53be44ee94d534606cb8bdd (patch) | |
| tree | cf1e2bfe0ff9e63af11cb3dea9f7a79c1d2b726d /challenge-104/abigail/lua/ch-1a.lua | |
| parent | f07721a447942936d7189b4beec3c2acae0c635d (diff) | |
| parent | 9571f967ddd4d11a0195c2b9f8f3fbb63fad9a15 (diff) | |
| download | perlweeklychallenge-club-9f5a7a1af0399189b53be44ee94d534606cb8bdd.tar.gz perlweeklychallenge-club-9f5a7a1af0399189b53be44ee94d534606cb8bdd.tar.bz2 perlweeklychallenge-club-9f5a7a1af0399189b53be44ee94d534606cb8bdd.zip | |
Merge remote-tracking branch 'upstream/master'
Diffstat (limited to 'challenge-104/abigail/lua/ch-1a.lua')
| -rw-r--r-- | challenge-104/abigail/lua/ch-1a.lua | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/challenge-104/abigail/lua/ch-1a.lua b/challenge-104/abigail/lua/ch-1a.lua new file mode 100644 index 0000000000..16569bf822 --- /dev/null +++ b/challenge-104/abigail/lua/ch-1a.lua @@ -0,0 +1,49 @@ +#!/opt/local/bin/lua + +-- +-- See ../README.md +-- + +-- +-- Run as: lua ch-1a.lua +-- + +-- +-- Initialize the cache +-- + +local cache = {} +cache [0] = 0 +cache [1] = 1 +local max = 50 + +-- +-- Fusc sequence is defined as: +-- ( n, 0 <= n <= 1 +-- fusc (n) = { fusc (n / 2), n > 1 && n even +-- ( fusc ((n - 1) / 2) + fusc ((n + 1) / 2), n > 1 && n odd +-- + +function fusc (n) + if cache [n] == nil then + if n % 2 == 1 then + cache [n] = fusc ((n - 1) / 2) + fusc ((n + 1) / 2) + else + cache [n] = fusc (n / 2) + end + end + return cache [n] +end + + +-- +-- Calculate the values and print them +-- + +for i = 0, max - 1 do + if i > 0 + then io . write (" ") + end + io . write (fusc (i)) +end +io . write ("\n") |
