음수가 아닌 정수의 비어 있지 않은 목록이 주어지면 다음과 같은 경우 산술 문제로 다시 작성하십시오.
+
왼쪽에서 오른쪽으로 증가하는 숫자 쌍 사이에 더하기 부호 ( )가 삽입됩니다 (일명 목록의 시작에서 끝까지).-
왼쪽에서 오른쪽으로 감소하는 숫자 쌍 사이에 빼기 부호 ( )가 삽입됩니다.- 곱셈 부호 (
*
)는 동일한 숫자 쌍 사이에 삽입됩니다.
다른 방법으로 말하면 모든 하위 목록 a,b
은 a+b
if a<b
, a-b
if a>b
및 a*b
if a==b
입니다.
예를 들어, 목록
[12, 0, 7, 7, 29, 10, 2, 2, 1]
표현이 될 것입니다
12 - 0 + 7*7 + 29 - 10 - 2*2 - 1
로 평가됩니다 75
.
이러한 목록을 가져 와서 평가, 인쇄 또는 결과 반환하는 프로그램 또는 함수를 작성하십시오.
- 작업 순서가 중요합니다. 곱하기는 더하기 또는 빼기 전에 수행해야합니다.
- 입력 목록에 하나의 숫자가 있으면 그것이 평가되는 것이어야합니다. 예를 들면
[64]
제공해야합니다64
. - 의 사용
eval
또는exec
유사한 구조가 허용됩니다.
몇 가지 추가 예는 다음과 같습니다.
[list]
expression
value
[0]
0
0
[1]
1
1
[78557]
78557
78557
[0,0]
0*0
0
[1,1]
1*1
1
[2,2]
2*2
4
[0,1]
0+1
1
[1,0]
1-0
1
[1,2]
1+2
3
[2,1]
2-1
1
[15,4,4]
15-4*4
-1
[9,8,1]
9-8-1
0
[4,2,2,4]
4-2*2+4
4
[10,9,9,12]
10-9*9+12
-59
[1,1,2,2,3,3]
1*1+2*2+3*3
14
[5,5,4,4,3,3]
5*5-4*4-3*3
0
[3,1,4,1,5,9,2,6,5,3,5,9]
3-1+4-1+5+9-2+6-5-3+5+9
29
[7637,388,389,388,387,12,0,0,34,35,35,27,27,2]
7637-388+389-388-387-12-0*0+34+35*35-27*27-2
7379
바이트 단위의 가장 짧은 코드가 이깁니다. Tiebreaker가 이전 답변입니다.