用LUA(和C++)刷PAT (Advanced Level) ——1073 Scientific Notation

local input = io.read('*a')

local Epos = string.find(input, "E")
local number = string.sub(input, 1, Epos - 1) 
local digit = string.sub(input, Epos + 1, #input - 1)

digit = ((string.sub(digit, 1, 1) == "-") and -1 or 1) * tonumber(string.sub(digit, 2, #digit))

result = string.sub(number, 1, 1) == "-" and "-" or ""
number = string.sub(number, 2, #number)
number = string.sub(number, 1, 1) .. string.sub(number, 3, #number)

if digit > 0 then
    if #number > digit + 1 then
        number = string.sub(number, 1, digit + 1) .. "." .. string.sub(number, digit + 2, #number)
    elseif #number == digit + 1 then
        
    else
        for i = 1, digit + 1 - #number do
            number = number .. "0"
        end
    end
else
    for i = 1, - digit do
        number = "0" .. number
    end
    number = string.sub(number, 1, 1) .. "." .. string.sub(number, 2, #number)
end

result = result .. number

print(result)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值