2016-08-04 13 views
1

最近質問がありました。n番目のK番号に最適なアルゴリズム

数字kを含む、またはkで割り切れるn番目の数字を探します。 (2 < = K < = 9)

例 -

場合N = 15 & K = 3

回答:33

(3、6、9、12、13、15 、18,21,23,24,27,30,31,32,33)

しかし、良いアイデアは考えられませんでした。これを解決する最良のアルゴリズムは何でしょうか。

答えて

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 k n = elem (head $ show k) $ show n 
+0

良い正確な説明としてhasDigitを定義することができます。 –