그래서 저는 뭔가를하려고 노력하고 있습니다. 거의 거기에 있습니다. 그러나 나는 그것의 마지막 부분을 해결할 수 없습니다. 나는 누군가가 번호를 제공하는 코드를 확인해야합니다 (의 22을 만들어 보자)는 내가 22보다 작은 두 개의 숫자 곱하면이 모든 대칭 수를 찾을 필요가 : 반복되지 않는 회문수를 만들려면 어떻게해야합니까?
이나는 결과가a*b
의 모든 대칭 수를 찾기를 그러나a < n && b < n
. 그러나 그들은 반복 할 수 없다. 우리가calc 22
을 할 경우
[11,22,33,44,55,66,77,88,99,171,121,252,272,323]
을해야하지만
[11,22,33,44,55,66,77,88,99,171,121,252,252,272,323]
때문에 14x18 = 12x21 = 252납니다이
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)]
을 얻었다.
어디서 잘못 되었나요?
편집 내용이 실제로 사용자 요구를 충족시키는 지 확인하십시오. 그렇지 않으면 자신의 게시물을 [편집]하십시오. – Zeta
놀랍습니다! 고맙습니다!! –
이것은 알고리즘의 문제를 해결하지는 못했지만'Data.Set.toList. Data.Set.fromList'를 실행하고 완료하십시오. – bheklilr