第n个K数的最佳算法

时间:2016-08-04 13:53:53

标签: algorithm optimization

我最近提出了问题,

找到包含数字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)

但无法想出一个好的工作理念。什么是解决这个问题的最佳算法。

1 个答案:

答案 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