En CSS, les couleurs peuvent être spécifiées par un "triplet hexadécimal" - un nombre hexadécimal à trois octets (six chiffres) où chaque octet représente les composantes rouge, verte ou bleue de la couleur. Par exemple, #FF0000
est complètement rouge et équivaut à rgb(255, 0, 0)
.
Les couleurs peuvent également être représentées par la notation abrégée qui utilise trois chiffres hexadécimaux. La sténographie s'étend à la forme à six chiffres en dupliquant chaque chiffre. Par exemple, #ABC
devient #AABBCC
.
Puisqu'il y a moins de chiffres dans le raccourci hexadécimal, moins de couleurs peuvent être représentées.
Le défi
Écrivez un programme ou une fonction qui prend un code couleur hexadécimal à six chiffres et génère le code couleur à trois chiffres le plus proche.
Voici un exemple:
- Entrez le code hexadécimal: # 28a086
- Composant rouge
- 0x28 = 40 (décimal)
- 0x22 = 34
- 0x33 = 51
- 0x22 est plus proche, donc le premier chiffre du code de couleur raccourci est 2
- Composant vert
- 0xa0 = 160
- 0x99 = 153
- 0xaa = 170
- 0x99 est plus proche, donc le deuxième chiffre est 9
- Composant bleu
- 0x86 = 134
- 0x77 = 119
- 0x88 = 136
- 0x88 est plus proche, donc le troisième chiffre est 8
- Le code de couleur raccourci est # 298 (qui se développe en # 229988)
Votre programme ou fonction doit accepter comme entrée un code de couleur hexadécimal à six chiffres précédé de #
et sortir un code de couleur à trois chiffres précédé de #
.
Exemples
- # FF0000 → # F00
- # 00FF00 → # 0F0
- # D913C4 → # D1C
- # C0DD39 → # BD3
- # 28A086 → # 298
- # C0CF6F → # BC7
Notation
Il s'agit d'un défi de code-golf, donc la réponse la plus courte dans votre langue l'emporte! Des règles standard s'appliquent.
#
ajoute quelque chose au défi.