Các thiết lập:
Một mạng xã hội báo cáo số phiếu bầu mà một bài đăng có theo hai cách: số lượng upvote ròng (tổng số upvote - tổng số downvote) và % số phiếu được upvote , làm tròn đến số nguyên gần nhất (0,5 lần làm tròn lên). Số lượng upvote ròng là một số nguyên (không nhất thiết là số dương) và số thứ hai được đảm bảo là một số nguyên nằm trong khoảng từ 0 đến +100. Số lượng upvote và số lượng downvote đều là số nguyên 32 bit 0 hoặc dương (bạn có thể chỉ định ký hoặc không dấu). Giả sử rằng nếu không có tổng số phiếu, tỷ lệ phần trăm tăng được báo cáo là không.
Các thách thức:
Với hai số nguyên này (upvote net và% upvote), chương trình ngắn nhất bạn có thể viết là gì để xác định số lượng tổng số upvote thấp nhất mà bài đăng nhận được, với tất cả các ràng buộc ở trên thỏa mãn?
Các ràng buộc đầu vào được đảm bảo. Nếu đầu vào không thỏa mãn các ràng buộc ở trên, hành vi chương trình là tùy thuộc vào bạn. Thưởng kudos nếu nó không đi vào một vòng lặp vô hạn hoặc nếu không sự cố. Xem xét trả lại một số âm nếu bạn muốn có thêm hướng dẫn.
Quy tắc chung:
- Đây là môn đánh gôn , vì vậy giải pháp hợp lệ ngắn nhất (tính bằng byte) sẽ thắng.
- Đừng để ngôn ngữ mã-golf ngăn cản bạn đăng câu trả lời với các ngôn ngữ không mã hóa. Cố gắng đưa ra một câu trả lời càng ngắn càng tốt cho ngôn ngữ lập trình 'bất kỳ'. Phần thưởng dành cho ngôn ngữ Web phía máy khách như Javascript.
- Nếu bạn có giải pháp thú vị bằng nhiều ngôn ngữ, hãy đăng chúng riêng biệt .
- Các quy tắc chuẩn áp dụng cho câu trả lời của bạn, vì vậy bạn được phép sử dụng STDIN / STDOUT, các hàm / phương thức với các tham số thích hợp và kiểu trả về hoặc các chương trình đầy đủ. Cuộc gọi của bạn.
- Lỗ hổng mặc định bị cấm.
- Nếu có thể, vui lòng thêm một liên kết với một bài kiểm tra cho mã của bạn.
- Ngoài ra, vui lòng thêm một lời giải thích về cách hoạt động của mã.
- Hãy nhớ rằng nếu bạn đang thực hiện một thao tác chia số nguyên cắt ngắn (ví dụ 20/3 = 6) chứ không phải các vòng , điều đó có thể không hoàn toàn chính xác.
- Các trường hợp thử nghiệm bổ sung khám phá các trường hợp cạnh trong các ràng buộc trên được hoan nghênh.
- Trong khi loại trả về dự kiến là số, boolean "false" có thể được sử dụng thay cho 0 .
Các trường hợp thử nghiệm ví dụ:
Cột đầu tiên chỉ là một số tham chiếu bao gồm để tạo điều kiện thảo luận.
ref net %up answer
1 0 0 => 0
2 -5 0 => 0
3 -4 17 => 1
4 -3 29 => 2
5 -2 38 => 3
6 -1 44 => 4
7 0 50 => 1
8 5 100 => 5
9 4 83 => 5
10 3 71 => 5
11 2 63 => 5
12 1 56 => 5
13 1234 100 => 1234
14 800 90 => 894 (tip: don't refer to this as the "last test case;" others may be added.)
1000, 100
. Bạn có thể xác nhận rằng câu trả lời dự kiến là 1000
?