私は何かをしようとしています、それはほぼそこにありますが、私はそれの最後の部分を解決することはできません。私が22未満の2つの数値を乗算するときがあり、私は誰かが数を与えるコードをしなければならない(のが22作ろう)AN私はすべて回文数を見つける必要がある:繰り返しのない回文数字を作成するにはどうしたらいいですか?
a*b
のすべて回文数を探しますa < n && b < n
。彼らは自分自身を繰り返すことはできません。
私はこの
calc :: Int -> [Int]
calc n = [a*b|a<-[1..n-1], b<-[a..n-1], a*b>10, reverse(show(a*b))==show(a*b)]
を得た私たちはcalc 22
をすれば結果は
[11,22,33,44,55,66,77,88,99,171,121,252,272,323]
する必要がありますが、14x18 = 12x21 = 252ので、私は
[11,22,33,44,55,66,77,88,99,171,121,252,252,272,323]
を取得しています。
どこが間違っていましたか?
私の編集があなたのニーズを実際に満たしていることを確認してください。それ以外の場合は自分自身で投稿を編集します。 – Zeta
ITは素晴らしいです!ありがとうございました!! –
これはあなたのアルゴリズムの問題を解決するものではありませんが、 'Data.Set.toList。 Data.Set.fromList'を実行し、それを使って終了します。 – bheklilr