Q
회문 하스켈
1
A
답변
9
reverse [x*y] == [x*y]
은이 부분을 잘못된. [x*y]
은 단일 요소가있는 목록입니다. 결과는 x*y
입니다. 그 반대는 같은 목록입니다 ...
자릿수는 반전 된 숫자입니다. 번호의 숫자가있는 목록이 필요합니다. 간단한 트릭은 번호를 문자열 표현으로 변환하는 것입니다 (기억하십시오 : type String = [Char]
). [ ]
대신,이 당신이 show
를 사용하려면 다음을 수행합니다
palindrome = [ x*y | x <- [100..999], y <- [100..999], reverse (show (x*y)) == show (x*y)]
2
단일 번호가 포함 된 목록에 역순으로 기능을 적용하고 싶지 않습니다. 해당 번호의 문자열 표현에 reverse 함수를 적용해야합니다.
"show"기능을 사용해보십시오. 당신이 그것을보고 및 프로젝트 오일러의 전체 목적을 파괴하지 않도록 충분한 강도가있는 경우
또한, 당신이 볼 수 있습니다 :
을 BTW :이 코드는 나에게 답을 알려줍니다 것은 906609. –
이다 그러나 나는 그것을 계산하고 싶어! 고마워요 어쨌든 –
죄송합니다. 코드를 실행하고 그 결과를보고 답을 찾는 즐거움을 망칠 수 밖에 없어요. 오 ... 그 따뜻한 퍼지 느낌 ... 그것은 내 의도가 아니었다 :) –