Cách để có được số


10

Với đầu vào của số thứ nhất và số thứ hai (cả hai số nguyên dương, Zero exluded), xác định trong bao nhiêu cách để bạn có thể làm cho ra thứ hai của người đầu tiên, sử dụng hành động sau đây: +1, +2*3. Hoạt động đơn giản được áp dụng từ trái sang phải.

Ví dụ:

  1. Đầu vào : 1 2. Đầu ra : 1. Tức là, bạn chỉ có thể nhận được 2bằng cách làm +1, vì vậy một cách.

  2. Đầu vào : 1 3. Đầu ra : 3. Tức là, bạn có thể nhận được 3 bằng cách làm +2hoặc +1+1, hoặc*3

  3. Đầu vào : 1 4. Đầu ra : 4.

  4. Đầu vào : 2 6. Đầu ra : 6.

  5. Đầu vào : 2 7. Đầu ra : 9.

  6. Đầu vào : 1 10. Đầu ra : 84.

Trong trường hợp không có cách nào, ví dụ 100 100, hoặc 100 80, đầu ra là 0.

Bạn cũng có thể lấy đầu vào dưới dạng một mảng hoặc chuỗi với bất kỳ dấu phân cách thuận tiện nào.

Giải pháp ngắn nhất sẽ thắng.


Có vẻ như nó có thể là một bản dupe, xin lỗi nếu nó - không tìm thấy một câu hỏi tương tự.
nicael

4
Điều gì về đầu vào mà câu trả lời nên là vô hạn? Ví dụ: bất kỳ đầu vào nào trong đó số nguyên đầu tiên là âm, bởi vì bạn có thể nhân ba và sau đó tăng trở lại số ban đầu và lặp lại nhiều lần như bạn muốn.
Peter Taylor

1
@Patrick: Mặc dù vậy cũng có ý nghĩa. Bắt đầu từ -1 và chuyển sang 0, bạn có thể đăng ký *3 +2 +1bao nhiêu lần tùy ý, sau đó đăng ký +1để nhận về 0.
Deusovi

@Peter Nhận xét công bằng, giới hạn ở số dương.
nicael

Câu trả lời:


1

Pyth - 26 24 byte

Dường như có một lỗi trong Pyth khiến nó mất đầu vào theo thứ tự sai, nhưng dù sao nó cũng không thành vấn đề.

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

Phòng thử nghiệm .

( 1 10hết thời gian trực tuyến, nhưng làm việc trên máy tính của tôi).


Đã hết thời gian, với số lượng nhỏ như vậy? Huh.
nicael

@nicael vâng, chỉ có 59K cách tôi kiểm tra 10, nhưng pyth là slooooooow
Maltysen

6

Javascript ES6, 45 44 byte

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

Ví dụ chạy:

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

1
Việc sử dụng các tham số mặc định thú vị, mặc dù phải thừa nhận rằng nó không lưu bất kỳ byte nào ở đây. =B(B=)(được bbỏ qua trên mục đích) là 6 ký tự và thay thế được chuyển ,b3 lần cho các cuộc gọi đệ quy cũng là 6 ký tự. Dù sao, công việc tốt.
Patrick Roberts

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.