주간 챌린지 122

Challenge , My solutions

작업 #1 › 스트림의 평균





일련의 숫자@N가 제공됩니다.

모든 지점에서 스트림의 평균을 출력하는 스크립트를 작성하십시오.

내 솔루션



이것은 비교적 간단하며 이 코드 비트map { ++$cnt; $sum += $_; $sum / $cnt } @N로 작업이 완료됩니다. 기본적으로 나는 카운터에 1을 더하고 그 합에 값을 더하고 그 지점에서 평균(합 ÷ 카운터)을 계산합니다.

설명되지 않은 한 가지는 평균이 정수가 아닐 때 일어나는 일입니다. 무엇을 해야 하는지에 대한 지침이 없기 때문에 Perl이 무엇을 하는지 인쇄해 보겠습니다. 따라서 1/3은 0.333333333333333로 표시됩니다.

예시




$ ./ch-1.pl 10 20 30 40 50 60 70 80 90
10 15 20 25 30 35 40 45 50


작업 #2 › 농구 포인트





점수$S가 주어집니다.

예를 들어 농구 점수를 얻을 수 있습니다. 1점, 2점, 3점입니다.

점수를 매길 수 있는 다양한 방법을 알아보는 스크립트를 작성하세요$S.

내 솔루션



이 작업을 보자마자 Challenge 112 의 Climb Stairs 작업이 생각났습니다. 이 문제를 해결하기 위해 비슷한 방법론을 사용했습니다.

주요 작업은 재귀 함수_score에서 수행됩니다(이전 챌린지에서 _climb라고 불림). 남은 점수가 3점 이하일 경우 필요한 점수를 얻기 위해 득점 샷을 보여줍니다. 1점 이상 남았다면 그 샷의 포인트보다 1점 이상 남으면 1, 2, 3점에 대한 _score 서브루틴을 다시 호출합니다.




$ ./ch-2.pl 4
1 3
1 1 2
1 1 1 1
1 2 1
2 2
2 1 1
3 1

$ ./ch-2.pl 5
1 1 3
1 1 1 2
1 1 1 1 1
1 1 2 1
1 2 2
1 2 1 1
1 3 1
2 3
2 1 2
2 1 1 1
2 2 1
3 2
3 1 1

좋은 웹페이지 즐겨찾기