정수 목록을 접을 것입니다. 절차는 다음과 같습니다. 목록의 길이가 짝수 인 경우 새 목록의 n 번째 항목이 이전 목록의 n 번째 항목과 n 번째 -to- 이전 목록의 마지막 항목. 예를 들어 목록이 있다면
[1 2 3 4 5 6 7 8]
우리는 그렇게 접을 것입니다
[8 7 6 5]
+[1 2 3 4]
__________
[9 9 9 9]
목록의 길이 가 홀수 인 경우 접을 수 있도록 먼저 중간 항목을 제거하고 짝수 인 것처럼 접고 결과에 중간 항목을 추가합니다.
예를 들어 목록이 있다면
[1 2 3 4 5 6 7]
우리는 그렇게 접을 것입니다
[7 6 5]
+[1 2 3]
__________
[8 8 8]
++ [4]
__________
[8 8 8 4]
태스크
정수 목록을 입력으로 사용하고 그 목록을 접은 출력으로하는 프로그램이나 함수를 작성하십시오.
이것은 코드 골프 질문이므로 바이트 수가 적을수록 답변 점수가 바이트로 표시됩니다.
샘플 구현
다음 f은 접기를 수행하는 함수 를 정의하는 Haskell의 구현입니다 .
f(a:b@(_:_))=a+last b:f(init b)
f x=x