Pengaturan:
Sebuah jejaring sosial melaporkan jumlah suara yang dimiliki suatu pos dengan dua cara: jumlah upvote bersih (total upvotes - total downvotes), dan % suara yang upvotes , dibulatkan ke bilangan bulat terdekat (0,5 bulat ke atas). Jumlah upvote bersih adalah bilangan bulat (tidak harus positif), dan yang kedua dijamin bilangan bulat antara 0 dan +100 inklusif. Jumlah upvotes dan jumlah downvotes adalah nol atau bilangan bulat positif 32-bit (Anda dapat menentukan yang ditandatangani atau tidak ditandatangani). Asumsikan bahwa jika tidak ada total suara nol, persentase yang dipvotasikan dilaporkan sebagai nol.
Tantangan:
Dengan kedua bilangan bulat ini (upvote bersih dan% tervotasikan), program apa yang paling singkat yang dapat Anda tulis yang menentukan jumlah terendah total upvote yang diterima pos, dengan semua kendala di atas terpenuhi?
Batasan input dijamin. Jika input tidak memenuhi kendala di atas, perilaku program terserah Anda. Bonus pujian jika tidak memasuki loop tak terbatas atau crash. Pertimbangkan untuk mengembalikan nomor negatif jika Anda menginginkan panduan lebih lanjut.
Aturan umum:
- Ini adalah kode-golf , sehingga solusi terpendek yang valid (diukur dalam byte) menang.
- Jangan biarkan bahasa kode-golf mencegah Anda memposting jawaban dengan bahasa non-codegolf. Cobalah untuk memberikan jawaban sesingkat mungkin untuk bahasa pemrograman 'apa saja'. Bonus pujian untuk bahasa Web sisi klien seperti Javascript.
- Jika Anda memiliki solusi menarik dalam berbagai bahasa, poskan secara terpisah .
- Aturan standar berlaku untuk jawaban Anda, jadi Anda diperbolehkan menggunakan STDIN / STDOUT, fungsi / metode dengan parameter dan tipe pengembalian yang tepat, atau program lengkap. Panggilanmu.
- Celah default dilarang.
- Jika memungkinkan, silakan tambahkan tautan dengan tes untuk kode Anda.
- Selain itu, harap tambahkan penjelasan tentang cara kerja kode.
- Ingatlah bahwa jika Anda melakukan operasi pembagian bilangan bulat yang memotong (mis. 20/3 = 6) daripada putaran , itu mungkin tidak sepenuhnya benar.
- Kasus uji tambahan yang mengeksplorasi kasus tepi dalam kendala di atas dipersilakan.
- Sementara tipe pengembalian yang diharapkan adalah angka, boolean "false" dapat digunakan sebagai pengganti 0 .
Contoh uji kasus:
Kolom pertama hanyalah nomor referensi yang disertakan untuk memfasilitasi diskusi.
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
. Bisakah Anda mengonfirmasi bahwa jawaban yang diharapkan adalah 1000
?