我最近提出了问题,
找到包含数字k的第n个数字或者可以被k整除。 (2 <= k <= 9)
示例 -
如果n = 15&amp; k = 3
答案:33
(3,6,9,12,13,15,18,21,23,24,27,30,31,32,33)
但无法想出一个好的工作理念。什么是解决这个问题的最佳算法。
答案 0 :(得分:2)
haskell
> filter (\x -> hasDigit 3 x || mod x 3 == 0) [1..100]
[3,6,9,12,13,15,18,21,23,24,27,30,31,32,33,34,35,36,37,38,39,42,43,45,48,51,53,5
4,57,60,63,66,69,72,73,75,78,81,83,84,87,90,93,96,99]
您可以将hasDigit定义为
> hasDigit k n = elem (head $ show k) $ show n