Description
将指定的整数按规则由大到小拆分成多个更小的整数!
e.g.
被拆分的的整数:23
拆分规则:{1, 2, 3}
拆分结果:7个3,1个2
Implemention
function splitNum(targetNum, ruleTbl)
if #ruleTbl == 0 then
return targetNum
end
for i = #ruleTbl, 1, -1 do
local count = math.modf(targetNum / ruleTbl[i])
if count > 0 then
print(ruleTbl[i], count)
targetNum = targetNum % ruleTbl[i]
if targetNum == 0 then
break
end
end
end
if targetNum > 0 then
print("split failed->", targetNum)
end
end
local targetNum = 23
local ruleTbl = {1, 2, 3}
splitNum(targetNum, ruleTbl)
-- 3 7
-- 2 1
Tips
浮点型的数由于精度问题,不能像整数这样拆分!但是可以先将浮点型的数转成整数进行拆分,再还原回去即可!