숫자를 얻는 방법


10

첫 번째 숫자의 입력과 두 번째 숫자 (두 양의 정수, exluded 제로)을 감안할 때, 다음 작업을 사용하여, 첫 번째의 두 번째 아웃 할 수있는 방법을 여러 가지 방법으로 결정합니다 +1, +2하고 *3. 작업은 왼쪽에서 오른쪽으로 간단하게 적용됩니다.

예 :

  1. 입력 : 1 2. 출력 : 1. 즉, 당신은 얻을 수있는 2수행하여 +1, 하나의 방법 때문에.

  2. 입력 : 1 3. 출력 : 3. 즉, 당신이하고 중 3을 얻을 수 +2이나 +1+1, 또는*3

  3. 입력 : 1 4. 출력 : 4.

  4. 입력 : 2 6. 출력 : 6.

  5. 입력 : 2 7. 출력 : 9.

  6. 입력 : 1 10. 출력 : 84.

방법이없는 경우 (예 : 100 100또는 100 80) 출력은 0입니다.

편리한 구분 기호를 사용하여 배열 또는 문자열로 입력을받을 수도 있습니다.

가장 짧은 해결책이 이깁니다.


그것은 속임수가 될 수있는 것 같습니다. 미안하면 비슷한 질문을 찾지 못했습니다.
nicael

4
답이 무한해야하는 입력은 어떻습니까? 예를 들어, 첫 번째 정수가 음수 인 입력은 3을 곱한 다음 원래 숫자로 다시 증가하고 원하는만큼 반복 할 수 있기 때문입니다.
피터 테일러

1
@ 패트릭 : 그것은 이해가됩니다. -1에서 시작하여 0이되면 *3 +2 +1원하는만큼 신청 한 다음 +10에 지원할 수 있습니다.
Deusovi

@Peter Fair 비고, 양수로 제한됩니다.
nicael

답변:


1

Pyth- 26 24 바이트

Pyth에는 잘못된 순서로 입력을하는 버그가있는 것 같습니다만, 그것은 중요하지 않습니다.

/m.vj;+sdzs^Lc3"+1+2*3"S

테스트 스위트 .

( 1 10온라인 시간이 초과되었지만 내 컴퓨터에서 작동했습니다).


작은 숫자로 시간이 초과 되었습니까? 허.
nicael 2016 년

@ nicael 그래, 내가 확인하는 방법 10은 59K 뿐이지 만 pyth는 어리 석다
Maltysen

6

자바 스크립트 ES6, 45 44 바이트

f=(a,b=B)=>a<(B=b)?f(a+1)+f(a+2)+f(a*3):a==b

예제 실행 :

f(1,2)  -> 1
f(2,6)  -> 6
f(1 10) -> 84

1
기본 매개 변수를 흥미롭게 사용하지만 여기에는 바이트가 저장되지 않습니다. =B그리고 (B=)( b의도적으로 생략) 6 문자이며 대안은 6 문자 인 ,b재귀 호출에 3 번 전달 됩니다. 어쨌든 잘 했어
Patrick Roberts

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.