Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local floor,insert = math.floor, table.insert
- function basen(n,b)
- n = floor(n)
- if not b or b == 10 then return tostring(n) end
- local digits = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
- local t = {}
- local sign = ""
- if n < 0 then
- sign = "-"
- n = -n
- end
- repeat
- local d = (n % b) + 1
- n = floor(n / b)
- insert(t, 1, digits:sub(d,d))
- until n == 0
- return sign .. table.concat(t,"")
- end
- local Crz = {
- ["0"] = { ["0"] = "1", ["1"] = "0", ["2"] = "0" },
- ["1"] = { ["0"] = "1", ["1"] = "0", ["2"] = "2" },
- ["2"] = { ["0"] = "2", ["1"] = "2", ["2"] = "1" }
- }
- function Crazy( Integer1, Integer2 )
- Integer1, Integer2 = basen(Integer1,3),basen(Integer2,3)
- print( Integer1, Integer2 )
- if string.len( Integer1 ) > string.len( Integer2 ) then
- Integer2 = string.rep( "0", string.len( Integer1 ) - string.len( Integer2 ) ) .. Integer2;
- end
- if string.len( Integer1 ) < string.len( Integer2 ) then
- Integer1 = string.rep( "0", string.len( Integer2 ) - string.len( Integer1 ) ) .. Integer1;
- end
- -- String are now equal length
- local Return = "";
- for i=1, string.len( Integer1 ) do
- Return = Return .. Crz[Integer1:sub(i,i)][Integer2:sub(i,i)];
- end
- return tonumber(Return, 3)
- end
- io.write("Enter the first int\n")
- io.flush()
- i1=io.read()
- io.write("Enter the second int\n")
- io.flush()
- i2=io.read()
- print( "Crz = ".. Crazy( tonumber(i1), tonumber(i2) ) )
- io.write("continue with this operation (y/n)? ")
- io.flush()
- answer=io.read()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement