En CSS, los colores se pueden especificar mediante un "triplete hexadecimal": un número hexadecimal de tres bytes (seis dígitos) donde cada byte representa los componentes rojo, verde o azul del color. Por ejemplo, #FF0000
es completamente rojo y es equivalente a rgb(255, 0, 0)
.
Los colores también se pueden representar mediante la notación abreviada que utiliza tres dígitos hexadecimales. La taquigrafía se expande a la forma de seis dígitos duplicando cada dígito. Por ejemplo, se #ABC
convierte #AABBCC
.
Como hay menos dígitos en la taquigrafía hexadecimal, se pueden representar menos colores.
El reto
Escriba un programa o función que tome un código de color hexadecimal de seis dígitos y genere el código de color de tres dígitos más cercano.
Aquí hay un ejemplo:
- Código hexadecimal de entrada: # 28a086
- Componente rojo
- 0x28 = 40 (decimal)
- 0x22 = 34
- 0x33 = 51
- 0x22 está más cerca, por lo que el primer dígito del código de color acortado es 2
- Componente verde
- 0xa0 = 160
- 0x99 = 153
- 0xaa = 170
- 0x99 está más cerca, entonces el segundo dígito es 9
- Componente azul
- 0x86 = 134
- 0x77 = 119
- 0x88 = 136
- 0x88 está más cerca, entonces el tercer dígito es 8
- El código de color acortado es # 298 (que se expande a # 229988)
Su programa o función debe aceptar como entrada un código de color hexadecimal de seis dígitos antepuesto #
y generar un código de color de tres dígitos antepuesto #
.
Ejemplos
- # FF0000 → # F00
- # 00FF00 → # 0F0
- # D913C4 → # D1C
- # C0DD39 → # BD3
- # 28A086 → # 298
- # C0CF6F → # BC7
Tanteo
Este es un desafío de código de golf, por lo que gana la respuesta más corta en su idioma. Aplican reglas estándar.
#
agregar nada al desafío.