36 lines
743 B
Lua
36 lines
743 B
Lua
local function fizzbuzz(n, mods)
|
|
local res = {}
|
|
|
|
for i = 1, #mods, 2 do
|
|
local mod, name = mods[i], mods[i+1]
|
|
for i = mod, n, mod do
|
|
res[i] = (res[i] or '') .. name
|
|
end
|
|
end
|
|
|
|
for i = 1, n do
|
|
res[i] = res[i] or i
|
|
end
|
|
|
|
return table.concat(res, '\n')
|
|
end
|
|
|
|
do
|
|
local n = tonumber(io.read()) -- number of lines, eg. 100
|
|
local mods = {}
|
|
|
|
local n_mods = 0
|
|
while n_mods ~= 3 do -- for reading until EOF, change 3 to -1
|
|
local line = io.read()
|
|
if not line then break end
|
|
local s, e = line:find(' ')
|
|
local num = tonumber(line:sub(1, s-1))
|
|
local name = line:sub(e+1)
|
|
mods[#mods+1] = num
|
|
mods[#mods+1] = name
|
|
n_mods = n_mods + 1
|
|
end
|
|
|
|
print(fizzbuzz(n, mods))
|
|
end
|