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
浮點型的數由於精度問題,不能像整數這樣拆分!但是可以先將浮點型的數轉成整數進行拆分,再還原回去即可!