当前位置:网站首页>L1-025 positive integer a+b (Lua)

L1-025 positive integer a+b (Lua)

2022-07-07 19:14:00 Just be interesting

subject

The goal of the question is very simple , It's two positive integers A and B And , among A and B It's all in the range [1,1000]. A little bit of a hassle , The input is not guaranteed to be two positive integers .

Input format :
Type in on a line to give A and B, They are separated by spaces . The problem is A and B It doesn't have to be a positive integer , Sometimes it can be out of range numbers 、 negative 、 A real number with a decimal point 、 It's even a mess of code .

Be careful : Let's put... In the input 1 A space is taken as A and B Separation of . Make sure that there is at least one space for the question , also B It's not an empty string .

Output format :
If the input is really two positive integers , According to the format A + B = And the output . If an input is not satisfactory , Output at corresponding position ?, Obviously at this time and also ?.

sample input 1:
123 456
sample output 1:
123 + 456 = 579

sample input 2:
22. 18
sample output 2:
? + 18 = ?

sample input 3:
-100 blabla bla…33
sample output 3:
? + ? = ?

Code

function io.read2value()
    local s = io.read()
    local n = #s
    for i = 1, n do
        if s:sub(i, i) == " " then
            return s:sub(1, i - 1), s:sub(i + 1)
        end
    end
end
local s1, s2 = io.read2value()
local flag1, flag2 = true, true
if tostring(tonumber(s1)) ~= s1 or s1:find(".", 1, true) ~= nil then
    flag1 = false
end
if tostring(tonumber(s2)) ~= s2 or s2:find(".", 1, true) ~= nil then
    flag2 = false
end

local s = ""
local n1, n2 = tonumber(s1), tonumber(s2)

if n1 and (n1 <= 0 or n1 > 1000) then flag1 = false end
if n2 and (n2 <= 0 or n2 > 1000) then flag2 = false end

s = s .. (flag1 and n1 or "?")
s = s .. " + "
s = s .. (flag2 and n2 or "?")
s = s .. " = "
s = s .. ((flag1 and flag2) and (n1 + n2) or "?")
print(s)
原网站

版权声明
本文为[Just be interesting]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/188/202207071515233355.html