Nun, es ist etwas Ähnliches wie diese Frage, aber mit kleinen Unterschieden. Sie müssen ein Programm schreiben, um die Breite des Fortschrittsbalkens und den Arbeitsaufwand abzufragen. und zeichnen Sie dann einen Fortschrittsbalken mit folgenden Funktionen:
width gibt an, wie viele Zeichen Sie zum Zeichnen des Fortschrittsbalkens verwenden müssen
Fortschritt wird über einen Gleitkommawert zwischen 0..1 angegeben.
Das erste und letzte Zeichen in der Statusleiste sollte sich von allen anderen Zeichen unterscheiden, z. B. "[" und "]".
Ihr Programm sollte zwei verschiedene Zeichen verwenden, um festzustellen, wie viel Fortschritt seit dem Start vergangen ist
Sie müssen genau in der Mitte des Fortschrittsbalkens mit einer Dezimalzahl + "%" schreiben, wie viel Arbeit erledigt wird.
Bonuspunkt für den Umgang mit extremen Eingaben wie 150% oder -5% geleisteter Arbeit.
Wertung der Anzahl der Zeichen * (1 ohne Bonus oder 0,75 Breite Bonus)
Einige Beispiele für gültige Ausgaben
79 0.15
[|||||||||||| 15% ]
25 0.76
[##########76%#####.....]
39 -0.12
[ -12% ]
25 7.6
[##########760%#########]
quelle
Antworten:
PHP 84 x 0,75 = 63
Bearbeiten: Eine weniger "hübsche" Version, aber es sollte nach den Regeln gültig sein:
Ausgabe:
Original (98 x 0,75 = 73,5)
Ausgabe:
quelle
J 78 × 0,75 = 58,5
(Negative Zahlen in J sind mit vorangestellter
_
, nicht-
. Zum Glück dyadic".
beiden Formate analysieren kann.)quelle
_12%
nicht genau in der mitte.Perl, 96 × ¾ = 72
Dies erfolgt nach den traditionellen Perl-Golfregeln (
#!
Linie wird mit Ausnahme der-
Schalter und, falls vorhanden, nicht gezählt ).quelle
Ruby - Score 93 (124 Zeichen)
Noch eine Ruby-Implementierung. Liest die Eingabe von STDIN in der oben beschriebenen Form. Sie können Zeichen austauschen
'#'
,' '
und'['
,']'
direkt im Code.quelle
Python -
158155148143138 Zeichen (103,5 Punkte)Es kann 30 Zeichen kürzer sein, wenn die Eingabe durch ein Komma getrennt ist.
quelle
r=p.length()
?Q, 90 Zeichen, kein Bonus
Verwendung
quelle
Scala 149:
ungolfed:
Aus Gründen der Lesbarkeit brauchst du unbedingt ein Leerzeichen um die Fortschrittszahl:
quelle
C, 145 Zeichen, Punktzahl = 108,75
quelle
20 1
Eingaben.[#######100%######]
In diesem Fall wird eine Ausgabe von 7 Scharfen links von der Zahl und von 5 Scharfen rechts generiert die Mitte.node.js: 135 Zeichen, * 0,75 für Bonuspunkte, also 101,25 Zeichen.
ungolfed:
Ausgabe:
quelle
PHP-128x0.75 => 96
C 149 × 0,75 = 111,75
Ausgabe:
quelle
JavaScript
127125, kein BonusVerbrauch: Ändern Sie
l=9
mit anderer Länge und / oder ändern Siep="0.99"
mit anderem ProzentHinweis: Beenden Sie mit Null
0.X0
anstelle von0.X
quelle
MATL , 35,25 Punkte (47 * 0,75)
Probieren Sie es online!
Erläuterung:
quelle
Excel VBA, 108 * .75 = 81 Byte
Eine Funktion , die eine Eingabe von nimmt
[A1]
und[B1]
und gibt an die KonsoleAusgabe
mit eingabe
[A1]=25
und[B1]=.76
Mit Eingabe
[A1:B1].Resize(1,2)=Split("32 -.5")
Mit Eingabe
[A1:B1].Resize(1,2)=Split("40 10.01")
quelle