Nel CSS, i colori possono essere specificati da una "tripletta esadecimale" - un numero esadecimale a tre byte (sei cifre) in cui ogni byte rappresenta i componenti rosso, verde o blu del colore. Ad esempio, #FF0000
è completamente rosso ed è equivalente a rgb(255, 0, 0)
.
I colori possono anche essere rappresentati dalla notazione abbreviata che utilizza tre cifre esadecimali. La scorciatoia si espande nella forma di sei cifre duplicando ogni cifra. Ad esempio, #ABC
diventa #AABBCC
.
Poiché nella stenografia esadecimale sono presenti meno cifre, è possibile rappresentare un numero inferiore di colori.
La sfida
Scrivi un programma o una funzione che accetta un codice colore esadecimale a sei cifre e genera il codice colore a tre cifre più vicino.
Ecco un esempio:
- Immettere il codice esadecimale: # 28a086
- Componente rosso
- 0x28 = 40 (decimale)
- 0x22 = 34
- 0x33 = 51
- 0x22 è più vicino, quindi la prima cifra del codice colore abbreviato è 2
- Componente verde
- 0xa0 = 160
- 0x99 = 153
- 0xaa = 170
- 0x99 è più vicino, quindi la seconda cifra è 9
- Componente blu
- 0x86 = 134
- 0x77 = 119
- 0x88 = 136
- 0x88 è più vicino, quindi la terza cifra è 8
- Il codice colore abbreviato è # 298 (che si espande in # 229988)
Il programma o la funzione deve accettare come input un codice colore esadecimale a sei cifre anteposto #
e un codice colore a tre cifre anteposto #
.
Esempi
- # FF0000 → # F00
- # 00FF00 → # 0F0
- # D913C4 → # D1C
- # C0DD39 → # BD3
- # 28A086 → # 298
- # C0CF6F → # BC7
punteggio
Questa è una sfida di code-golf, quindi vince la risposta più breve nella tua lingua! Si applicano le regole standard.
#
aggiungere qualcosa alla sfida.