遍历 1..N,递归拆位计算各位数字之和,筛选在 [A,B] 内的数并求和。
OJ: atcoder
题目 ID: abc083_b
难度:入门
标签:haskell
日期: 2026-07-10 11:27
题意
求
思路
遍历
代码
haskell
{-
Author by Rainboy blog: https://rainboylv.com github: https://github.com/rainboylvx
rbook: -> https://rbook.roj.ac.cn https://rbook2.roj.ac.cn
rainboy的学习导航网站: https://idx.roj.ac.cn
create_at: 2026-07-10 14:18
update_at: 2026-07-10 14:18
-}
digitSum 0 = 0
digitSum n = n `mod` 10 + digitSum (n `div` 10 )
main = do
[n,a,b] <- map read . words <$> getContents :: IO [Int]
let l = [ x | x <- [1..n], let t = digitSum x , t >= a , t <=b ]
print $ sum l复杂度
时间复杂度
总结
递归拆位 + 列表推导式 + sum 求和。