No CSS, as cores podem ser especificadas por um "trigêmeo hexadecimal" - um número hexadecimal de três bytes (seis dígitos) em que cada byte representa os componentes vermelho, verde ou azul da cor. Por exemplo, #FF0000
é completamente vermelho e é equivalente a rgb(255, 0, 0)
.
As cores também podem ser representadas pela notação abreviada que usa três dígitos hexadecimais. A abreviação se expande para o formato de seis dígitos duplicando cada dígito. Por exemplo, #ABC
torna-se #AABBCC
.
Como há menos dígitos na abreviação hexadecimal, menos cores podem ser representadas.
O desafio
Escreva um programa ou função que utilize um código de cores hexadecimal de seis dígitos e produz o código de cores de três dígitos mais próximo.
Aqui está um exemplo:
- Código hexadecimal de entrada: # 28a086
- Componente vermelho
- 0x28 = 40 (decimal)
- 0x22 = 34
- 0x33 = 51
- 0x22 está mais próximo, então o primeiro dígito do código de cor abreviado é 2
- Componente verde
- 0xa0 = 160
- 0x99 = 153
- 0xaa = 170
- 0x99 está mais próximo, então o segundo dígito é 9
- Componente azul
- 0x86 = 134
- 0x77 = 119
- 0x88 = 136
- 0x88 está mais próximo, então o terceiro dígito é 8
- O código de cor reduzido é # 298 (que se expande para # 229988)
Seu programa ou função deve aceitar como entrada um código de cores hexadecimal de seis dígitos anexado #
e gerar um código de cores de três dígitos anexado #
.
Exemplos
- # FF0000 → # F00
- # 00FF00 → # 0F0
- # D913C4 → # D1C
- # C0DD39 → # BD3
- # 28A086 → # 298
- # C0CF6F → # BC7
Pontuação
Este é um desafio do código-golfe, por isso vence a resposta mais curta do seu idioma! Aplicam-se regras padrão.
#
adicionar algo ao desafio.