Dies ist eine Herausforderung in Byte-Größe, bei der Sie eine Eingangstemperatur in einer der drei Einheiten (Celsius, Kelvin und Fahrenheit) in die anderen beiden Einheiten umrechnen müssen.
Eingang
Sie erhalten eine Temperatur als Zahl, gefolgt von einer Einheit (durch ein Leerzeichen getrennt). Die Temperatur kann eine Ganzzahl oder eine Gleitkommazahl sein (23 vs 23.0 oder 23.678).
Sie können eine Funktion oder ein vollständiges Programm übergeben, das die durch Leerzeichen getrennte Zeichenfolge aus dem Argument STDIN / ARGV / function oder dem nächstgelegenen Äquivalent liest und die Ausgabe an STDOUT oder das nächstgelegene Äquivalent ausgibt.
Ausgabe
Ihre Ausgabe sollte die Temperatur sein, die in die anderen beiden Formate konvertiert wurde, getrennt durch eine neue Zeile und gefolgt vom entsprechenden Einheitenzeichen in jeder Zeile (optional durch ein Leerzeichen getrennt). Die Reihenfolge der beiden Einheiten spielt keine Rolle.
Ausgabegenauigkeit
- Die umgerechnete Zahl sollte auf mindestens 4 Dezimalstellen genau sein, ohne zu runden.
- Nachgestellte Nullen oder Dezimalstellen sind optional, solange die ersten 4 Dezimalstellen (ohne Rundung) präzise sind. Sie können auch die 4 Nullen und / oder den Dezimalpunkt überspringen, falls die tatsächliche Antwort 4 Nullen nach dem Dezimalpunkt enthält.
- Es sollten keine führenden Nullen vorhanden sein
- Jedes Zahlenformat ist zulässig, solange es die oben genannten drei Anforderungen erfüllt.
Einheitendarstellung
Die Temperatureinheit kann nur eine der folgenden sein:
C
für CelsiusK
für KelvinF
für Fahrenheit
Beispiele
Eingang:
23 C
Ausgabe:
73.4 F
296.15 K
Eingang:
86.987 F
Ausgabe:
303.6983 K
30.5483 C
Eingang:
56.99999999 K
Ausgabe:
-216.1500 C
-357.0700 F
Dies ist Code-Golf, also gewinnt der kürzeste Eintrag in Bytes! Viel Spaß beim Golfen!
Bestenliste
<script>site = 'meta.codegolf',postID = 5314,isAnswer = true,QUESTION_ID = 50740</script><script src='https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js'></script><script>jQuery(function(){var u='https://api.stackexchange.com/2.2/';if(isAnswer)u+='answers/'+postID+'?order=asc&sort=creation&site='+site+'&filter=!GeEyUcJFJeRCD';else u+='questions/'+postID+'?order=asc&sort=creation&site='+site+'&filter=!GeEyUcJFJO6t)';jQuery.get(u,function(b){function d(s){return jQuery('<textarea>').html(s).text()};function r(l){return new RegExp('<pre class="snippet-code-'+l+'\\b[^>]*><code>([\\s\\S]*?)<\\/code><\/pre>')};b=b.items[0].body;var j=r('js').exec(b),c=r('css').exec(b),h=r('html').exec(b);if(c!==null)jQuery('head').append(jQuery('<style>').text(d(c[1])));if (h!==null)jQuery('body').append(d(h[1]));if(j!==null)jQuery('body').append(jQuery('<script>').text(d(j[1])))})})</script>
2/3
=> 0.666666666666
ist auf die 4. Stelle genau? (Ich würde JA sagen). Oder soll es sein 0.6667
?
0.666666666666
ist richtig. Ich erzwinge eine rundungsfreie Genauigkeit. So 0.6666
ist die Alternative.
23C\n73.4F\n296.15K
? oder muss das eingabeformat unterdrückt werden?