Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --[[
- ####--------------------------------####
- #--# Author: by uriid1 #--#
- #--# License: GNU GPLv3 #--#
- ####--------------------------------####
- --]]
- local ASCII_ZERO_CODE = 48
- local ASCII_NINE_CODE = 57
- io.stdout:write('First number: ')
- local a_str = io.stdin:read()
- io.stdout:write('Second number: ')
- local b_str = io.stdin:read()
- local function stringToNumArr(str)
- local result = {}
- for s in string.gmatch(str, '.') do
- local code = string.byte(s)
- if code < ASCII_ZERO_CODE or code > ASCII_NINE_CODE then
- return nil, 'Out of ascii range'
- end
- table.insert(result, code - ASCII_ZERO_CODE)
- end
- return result
- end
- local a, err = stringToNumArr(a_str)
- if err then
- print(err)
- return
- end
- local b, err = stringToNumArr(b_str)
- if err then
- print(err)
- return
- end
- local c = {}
- local x = 0
- for i = #a, 1, -1 do
- local sum = a[i] + x + (b[i-1] or 0)
- if sum > 9 then
- x = math.floor(sum / 10)
- table.insert(c, sum - 10)
- else
- table.insert(c, sum)
- end
- end
- local result = {}
- for i = #c, 1, -1 do
- table.insert(result, c[i])
- end
- print('result:', table.concat(result))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement