การตั้งค่า:
เครือข่ายโซเชียลรายงานจำนวนโหวตที่โพสต์มีสองวิธีคือจำนวนupvotes สุทธิ ( upvotesทั้งหมด - downvotes ทั้งหมด) และ% ของคะแนนโหวตที่ upvotesปัดเศษเป็นจำนวนเต็มที่ใกล้เคียงที่สุด (.5 รอบขึ้น) จำนวน upvotes สุทธิเป็นจำนวนเต็ม (ไม่จำเป็นต้องเป็นค่าบวก) และตัวที่สองรับประกันว่าจะเป็นจำนวนเต็มระหว่าง 0 ถึง +100 จำนวนของ upvotes และจำนวน downvotes มีทั้งจำนวนเต็มศูนย์หรือบวก 32 บิต (คุณสามารถระบุลายเซ็นหรือไม่ได้ลงนาม) สมมติว่าหากไม่มีการลงคะแนนรวมเป็นศูนย์เปอร์เซ็นต์ที่ประกาศเพิ่มจะถูกรายงานว่าเป็นศูนย์
ความท้าทาย:
ด้วยจำนวนเต็มสองจำนวนนี้ (net upvotes และ% upvoted) โปรแกรมสั้นที่สุดที่คุณสามารถเขียนได้คืออะไรซึ่งกำหนดจำนวนรวมของupvotes ที่ต่ำที่สุดที่โพสต์ได้รับโดยมีข้อ จำกัด ทั้งหมดข้างต้นเป็นที่พอใจ?
รับประกันข้อ จำกัด อินพุต หากอินพุตไม่เป็นไปตามข้อ จำกัด ข้างต้นพฤติกรรมของโปรแกรมขึ้นอยู่กับคุณ ความรุ่งโรจน์โบนัสหากไม่เข้าสู่วงวนไม่สิ้นสุดหรือเกิดปัญหาขัดข้อง ลองส่งคืนจำนวนลบหากคุณต้องการคำแนะนำเพิ่มเติม
กฎทั่วไป:
- นี่คือรหัสกอล์ฟดังนั้นวิธีแก้ปัญหาที่สั้นที่สุดที่ถูกต้อง (วัดเป็นไบต์) ชนะ
- อย่าปล่อยให้ภาษาโค้ดกอล์ฟกีดกันคุณจากการโพสต์คำตอบด้วยภาษาที่ไม่ได้เข้ารหัส พยายามหาคำตอบสั้น ๆ ที่เป็นไปได้สำหรับภาษาโปรแกรม 'ใด ๆ ' โบนัสความรุ่งโรจน์สำหรับภาษาเว็บฝั่งไคลเอ็นต์เช่น Javascript
- หากคุณมีการแก้ปัญหาที่น่าสนใจในหลายภาษา, โพสต์ไว้แยกต่างหาก
- กฎมาตรฐานจะใช้สำหรับคำตอบของคุณดังนั้นคุณจึงได้รับอนุญาตให้ใช้ STDIN / STDOUT ฟังก์ชัน / วิธีด้วยพารามิเตอร์ที่เหมาะสมและชนิดส่งคืนหรือโปรแกรมเต็มรูปแบบ การโทรของคุณ
- ช่องโหว่เริ่มต้นเป็นสิ่งต้องห้าม
- หากเป็นไปได้โปรดเพิ่มลิงค์พร้อมทดสอบรหัสของคุณ
- นอกจากนี้โปรดเพิ่มคำอธิบายว่ารหัสทำงานอย่างไร
- โปรดทราบว่าหากคุณกำลังดำเนินการหารจำนวนเต็มที่ตัดทอน (เช่น 20/3 = 6) แทนที่จะเป็นรอบนั่นอาจไม่ถูกต้องทั้งหมด
- กรณีทดสอบเพิ่มเติมที่สำรวจกรณีขอบในข้อ จำกัด ข้างต้นยินดีต้อนรับ
- ในขณะที่ชนิดของการส่งคืนที่คาดหวังเป็นตัวเลขบูลีน "false" สามารถใช้แทน 0ได้
ตัวอย่างกรณีทดสอบ:
คอลัมน์แรกเป็นเพียงหมายเลขอ้างอิงที่มีให้เพื่ออำนวยความสะดวกในการอภิปราย
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
@nwellnhof: คุณช่วยยืนยันได้1000
หรือไม่ว่าคำตอบที่คาดหวังคืออะไร?