Máy tính chi phí tiến hóa Pokemon GO


11

Mệt mỏi vì luôn tự hỏi bạn cần phải bắt thêm bao nhiêu Pokémon nữa để có được những tiến hóa cao cấp đó? Tự hỏi không còn nữa! Bây giờ bạn sẽ viết một chương trình hoặc hàm hoàn chỉnh để tính toán cho bạn!

Các thách thức:

Là đầu vào, chương trình của bạn sẽ nhận được một danh sách các chi phí bằng kẹo để phát triển Pokémon lên tầng tiếp theo. (Danh sách này có thể được phân tách bằng bất kỳ dấu phân cách nào bạn chọn hoặc làm đối số hàm). Chương trình của bạn sau đó sẽ trả lại hoặc in số lượng Pokémon phải bắt, bao gồm cả số sẽ được phát triển, để phát triển thông qua tất cả các cấp được đưa ra.

Làm thế nào để bạn tính toán này? Giống như vậy:
1. Cộng tất cả các chi phí kẹo: 12 + 50 = 62
2. Trừ 3 kẹo trong tổng số, đây là từ một Pokémon bạn giữ để phát triển: 62 - 3 = 59
3. Chia số này cho 4 (3 để bắt, 1 để đưa cho Giáo sư), luôn lấy ceil()kết quả: ceil(59/4) = 15
4. Cuối cùng, thêm 1 vào tổng số này để có được tổng số Pokémon bạn phải bắt, 16!

Ví dụ Input -> Output:

[4] -> 2
[50] -> 13
[12, 50] -> 16
[25, 100] -> 32
[19, 35, 5, 200] -> 65

Chiến thắng:

Ứng dụng đã chiếm phần lớn dung lượng trên điện thoại của bạn, vì vậy chương trình của bạn cần phải càng ngắn càng tốt. Chương trình hoặc hàm hoàn chỉnh với số byte nhỏ nhất sẽ được chấp nhận trong hai tuần! (với bất kỳ mối quan hệ nào được giải quyết bằng cách gửi sớm nhất!)


3
Sản lượng được tính như thế nào?
Leaky Nun

8
Trong tương lai, vui lòng sử dụng Hộp cát để giải quyết các khó khăn trong các thử thách của bạn và nhận phản hồi về chúng trước khi đăng.
El'endia Starman

7
Nếu bạn muốn một lý do vô lý ít hơn một chút cho độ dài mã ngắn, bạn có thể đi với "vì ứng dụng gần như đã làm chết pin của bạn, bạn muốn mã của mình càng ngắn càng tốt, vì vậy bạn có thể nhập mã đó trước khi pin hết."
Mego

2
Không nên là công thức floor(Sum(L)/4)+1? Công thức hiện tại không hoạt động với số tiền chia hết cho 4. Ví dụ [400]sẽ trả về 100, trong khi thực tế, nó cần phải là 101 để phát triển thêm.
Emigna

6
Tôi hy vọng ai đó gửi câu trả lời trong Go
Kodos Johnson

Câu trả lời:




5

Brain-Flak 112 byte

([]<([()])>){{}({}{})([][()])}{}{({}[()])<>(({}[()()()]<({}())>)){{}(<({}()()()()<({}[()])>)>)}{}<>}{}<>{}({}())

Dùng thử trực tuyến!

Giải trình

Nó tính tổng số, trừ một, chia cho bốn và thêm một.


Làm thế nào để tôi chạy nó trên thử nó trực tuyến? Nó chỉ xuất ra 1 cho tôi cho bất kỳ sơ đồ đầu vào nào tôi đã thử.
orlp

1
Đưa ra câu trả lời sai cho [4].
orlp

@orlp Đã sửa. Tôi đặt mã sai trong thử nó trực tuyến.
Đăng Rock Garf Hunter

3

C # REPL, 15 byte

n=>n.Sum()/4+1;

Diễn viên đến Func<IEnumerable<int>, int>.


3

Trên thực tế, 4 byte

Σ¼≈u

Hãy thử trực tuyến!

Giải trình:

Σ¼≈u
Σ     sum
 ¼    divide by 4
  ≈   floor
   u  add 1

1
Các ký tự unicode này có 2 byte không?
dùng23127

1
@ user23127 Nếu điều này được mã hóa trong UTF-8, vâng. Trên thực tế (và tiền thân của nó Nghiêm túc) sử dụng CP437.
Mego



2

BASH (sed + bc) 19

sed 's~)~+4)/4~'|bc

Đầu vào là một +danh sách riêng trên stdin
Eg:
echo '(19+35+5+200)'| sed 's~)~+4)/4~'|bc





1

CJam, 7 byte

{:+4/)}

Hãy thử nó ở đây!

Xác định một khối không tên dự kiến ​​đầu vào trên ngăn xếp và để lại kết quả ở đó.
:+tổng hợp danh sách, 4/chia kết quả cho 4 và )tăng số đó.





1

SILOS 100 99 103 ký tự + 22 cho đầu vào mẫu

Mã với khai thác thử nghiệm.

set 512 52
set 513 10
GOSUB e
GOTO f
funce
a = 0
i = 511
lblE
i + 1
b = get i
a + b
if b E
a / 4
a + 1
return
lblf
printInt a

nhập vào dưới dạng một loạt các lệnh được thiết lập để sửa đổi các điểm của heap bắt đầu từ vị trí 512.
Hãy thử trực tuyến!


Chỉ vì Pokemon Go không có hơn 8 tầng tiến hóa (nó thực sự đạt tối đa 3), không có nghĩa là bạn không bắt buộc phải xử lý các trường hợp thử nghiệm lớn.
Mego

@Mego thông số kỹ thuật tham chiếu rõ ràng pokemon đi, và do đó chúng tôi có thể giả định rằng tất cả đầu vào sẽ là đầu vào hợp lệ. Tôi đã đăng một phiên bản tốt hơn nhiều, thực sự xử lý đầu vào tách biệt dòng mới được kết thúc bằng một số không, nhưng TIO hiện đang bị cấm
Rohan Jhunjhunwala

@Mego hãy để tôi làm rõ với OP. Nếu điều này không hợp lệ, tôi có thể sửa đổi nó để hoạt động cho các trường hợp thử nghiệm lớn hơn
Rohan Jhunjhunwala

Đây thực sự là một lỗ hổng tiêu chuẩn - bạn cho rằng các quy tắc không có trong thử thách.
Mego

@Mego sửa đổi với chi phí là ba byte, giờ đây nó sẽ hoạt động tới 1000 lần tiến hóa.
Rohan Jhunjhunwala

0

Python 2, 40 byte

import math
lambda s:math.ceil(sum(s)/4)

Điều này không hoạt động vì sum(s)là một số nguyên và /trong Python 2 sẽ là phép chia số nguyên khi cả hai đối số là số nguyên.
Nữ tu bị rò rỉ

@LeakyNun Ý bạn là gì? nó hoạt động với tôi
acrolith

Đưa ra câu trả lời sai cho [4].
orlp
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.