blob: 72d378f496ad23c007321b0b97ec7f6b41060f20 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
#!/usr/bin/env lua
--[[
Challenge 102
TASK #2 > Hash-counting String
Submitted by: Stuart Little
You are given a positive integer $N.
Write a script to produce Hash-counting string of that length.
The definition of a hash-counting string is as follows:
- the string consists only of digits 0-9 and hashes, '#'
- there are no two consecutive hashes: '##' does not appear in your string
- the last character is a hash
- the number immediately preceding each hash (if it exists) is the position
of that hash in the string, with the position being counted up from 1
It can be shown that for every positive integer N there is exactly one such
length-N string.
Examples:
(a) "#" is the counting string of length 1
(b) "2#" is the counting string of length 2
(c) "#3#" is the string of length 3
(d) "#3#5#7#10#" is the string of length 10
(e) "2#4#6#8#11#14#" is the string of length 14
--]]
function hash_counting(n)
local out, i = '', n
while i > 0 do
p = i
out = '#'..out
i = i - 1
while i > 0 and p ~= 0 do
out = tostring(p % 10)..out
i = i - 1
p = math.floor(p / 10)
end
end
return out
end
print(hash_counting(tonumber(arg[1])))
|