Esse é um desafio de tamanho de byte, no qual é necessário converter uma temperatura de entrada em uma das três unidades (Celsius, Kelvin e Fahrenheit) nas outras duas.
Entrada
Você receberia uma temperatura como número seguido por uma unidade (separada por espaço). A temperatura pode ser um número inteiro ou um número de ponto flutuante (23 vs 23.0 ou 23.678).
Você pode enviar uma função ou um programa completo que leia a sequência separada por espaço do argumento STDIN / ARGV / function ou o equivalente mais próximo e imprima a saída em STDOUT ou equivalente mais próximo.
Saída
Sua saída deve ser a temperatura convertida nos outros dois formatos, separada por uma nova linha e seguida pelo caractere de unidade correspondente em cada linha (opcionalmente separado por um espaço). A ordem das duas unidades não importa.
Precisão de saída
- O número convertido deve ter precisão de pelo menos 4 casas decimais sem arredondamento.
- Zeros à direita ou casas decimais são opcionais, desde que as primeiras 4 casas decimais (sem arredondamento) sejam precisas. Você também pode pular os 4 zeros e / ou o ponto decimal, caso a resposta real tenha 4 zeros após o ponto decimal.
- Não deve haver zeros à esquerda
- Qualquer formato numérico é aceitável desde que cumpra os três requisitos acima.
Representação da unidade
A unidade de temperatura pode ser apenas um dos seguintes:
C
para CelsiusK
para KelvinF
para Fahrenheit
Exemplos
Entrada:
23 C
Saída:
73.4 F
296.15 K
Entrada:
86.987 F
Saída:
303.6983 K
30.5483 C
Entrada:
56.99999999 K
Saída:
-216.1500 C
-357.0700 F
Este é o código-golfe, pelo que ganha a entrada mais curta em bytes! Golfe feliz!
Entre os melhores
<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
é preciso até os 4 dígitos? (Eu diria que sim). Ou deveria ser 0.6667
?
0.666666666666
está correto. Eu estou aplicando uma precisão baseada em arredondamento. assim 0.6666
é a alternativa.
23C\n73.4F\n296.15K
? ou o formato de entrada deve ser suprimido?