Dados os códigos de cores em CMYK, converta-os para o valor RGB.
Entrada:
sequência de 4 números inteiros (variando de 0 a 100) separados por espaço
86 86 0 43
28 14 0 6
0 41 73 4
Resultado:
#141592
#ABCDEF
#F49043
O menor código vence!
DICA: Para converter CMYK em RGB, você pode usar uma fórmula como:
Red = 255 x (1 - Cyan/100) x (1 - Black/100) Green = 255 x (1 - Magenta/100) x (1 - Black/100) Blue = 255 x (1 - Yellow/100) x (1 - Black/100)
e use essas três variáveis para obter o valor no
#RRGGBB
formato
code-golf
conversion
color
Wasi
fonte
fonte
CMYK
valores como decimais de0
para1
ou é necessário fazer0
para100
?Respostas:
PHP , 90 bytes
Experimente online!
fonte
Python 3 ,
10098 bytes-2 bytes graças a Rod.
Experimente online!
fonte
Gelatina , 24 bytes
Um programa completo que imprime o resultado.
Experimente online!
Nota: o arredondamento em vez do piso pode ser usado inserindo os dois bytes de código
+.
entre255
eḞ
.Como?
fonte
_.Ċ
vez de+.Ḟ
... mas a última talvez seja mais amplamente usada.Retina , 103 bytes
Experimente online! Nota: Este código é muito lento, portanto, não martele o servidor de Dennis. Explicação:
Converta cada número em unário e subtraia de 100.
Multiplique todos os números pelo último número, que é excluído.
Multiplique por 51, para que, uma vez divididos em 2000, obtenhamos
100 * 100 * 51 / 2000 = 255
o desejado.Divida por 32000 e o piso divida o restante em 2000, gerando assim um par de valores da base 16, embora, infelizmente, eles mesmos ainda estejam escritos na base 10.
Converta da base 10 para a base 16.
Insira a guia
#
.fonte
Java 8, 166 bytes
Experimente online!
fonte
Javascript (ES6), 106 bytes
fonte
C ++ (gcc) ,
169166 bytesExperimente online!
Usando a fórmula otimizada.
Adicionadoque não é necessário.+.5
para converter CMYK =0 0 0 0
correto para RGB =0xffffff
fonte
Python 3 ,
114 110 108 106104 bytesrange[3]
como[0,1,2]
, indesejados[]
removidosExperimente online!
fonte
Ruby , 92 + 1 para o sinalizador -p = 93 bytes
Experimente online!
fonte
Perl 5 ,
5852 + 1 (-a) =5953 bytesExperimente online!
fonte
dc , 53 bytes
Experimente online!
fonte
Javascript, 104 bytes
Exemplo de trecho de código:
fonte
q / kdb +, 55 bytes
Solução:
Exemplos:
Explicação:
Bastante simples, roubou o
0.0255
truque de outras soluções (obrigado!). A avaliação é realizada da direita para a esquerda.Notas:
Arredonda números por padrão, custaria 3 bytes
(_)
no chão antes de converter para o short.fonte
05AB1E , 18 bytes
Experimente online!
-1 graças a kalsowerus .
Possui imprecisões de ponto flutuante, portanto, os resultados podem ser um por um, mas a fórmula na pergunta é usada.
fonte
$
é apenas o mesmo que1¹
input
quando haveria múltiplaHaskell, 165 bytes
fonte
Fortran, 156 bytes
fonte