Die Einrichtung:
Ein soziales Netzwerk gibt die Anzahl der Stimmen eines Posts auf zwei Arten an: die Anzahl der Netto-Upvotes (Gesamt-Upvotes - Gesamt-Downvotes) und die Prozentzahl der Stimmen, die Upvotes waren , auf die nächste Ganzzahl gerundet (0,5 Aufrundungen ). Die Anzahl der Netto-Upvotes ist eine ganze Zahl (nicht unbedingt positiv), und die zweite ist garantiert eine ganze Zahl zwischen 0 und einschließlich +100. Sowohl die Anzahl der positiven als auch die Anzahl der negativen Stimmen sind entweder null oder positive 32-Bit-Ganzzahlen (Sie können vorzeichenbehaftete oder vorzeichenlose angeben). Angenommen, bei einer Gesamtzahl von null Stimmen wird der Prozentsatz der abgegebenen Stimmen als null gemeldet.
Die Herausforderung:
Was ist das kürzeste Programm, das Sie schreiben können, um die niedrigste Anzahl von Gesamt-Upvotes zu ermitteln, die der Beitrag erhalten hat, wenn alle oben genannten Bedingungen erfüllt sind?
Eingabebeschränkungen sind garantiert. Wenn die Eingabe die oben genannten Einschränkungen nicht erfüllt, liegt das Programmverhalten bei Ihnen. Bonus-Kudos, wenn es nicht in eine Endlosschleife geht oder auf andere Weise abstürzt. Überlegen Sie, ob Sie eine negative Zahl zurückgeben möchten, wenn Sie weitere Anleitungen benötigen.
Allgemeine Regeln:
- Das ist Code-Golf , also gewinnt die kürzeste gültige Lösung (gemessen in Bytes).
- Lassen Sie sich von Code-Golf-Sprachen nicht davon abhalten, Antworten mit Nicht-Codegolf-Sprachen zu veröffentlichen. Versuchen Sie, für jede Programmiersprache eine möglichst kurze Antwort zu finden. Bonuskudos für eine clientseitige Web-Sprache wie Javascript.
- Wenn Sie interessante Lösungen in mehreren Sprachen haben, veröffentlichen Sie diese separat .
- Für Ihre Antwort gelten Standardregeln. Daher dürfen Sie STDIN / STDOUT, Funktionen / Methoden mit den richtigen Parametern und dem richtigen Rückgabetyp oder vollständige Programme verwenden. Ihr Anruf.
- Standardlücken sind verboten.
- Fügen Sie nach Möglichkeit einen Link mit einem Test für Ihren Code hinzu.
- Fügen Sie außerdem eine Erläuterung der Funktionsweise des Codes hinzu.
- Denken Sie daran, dass wenn Sie eine Ganzzahldivisionsoperation ausführen, die anstelle von Runden abschneidet (z. B. 20/3 = 6) , dies möglicherweise nicht vollständig korrekt ist.
- Zusätzliche Testfälle, die die Randfälle in den obigen Einschränkungen untersuchen, sind willkommen.
- Während der erwartete Rückgabetyp numerisch ist, kann anstelle von 0 der Boolesche Wert "false" verwendet werden .
Beispiel Testfälle:
Die erste Spalte enthält lediglich eine Referenznummer, um die Diskussion zu erleichtern.
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
. Können Sie bestätigen, dass die erwartete Antwort ist 1000
?