3.5 KiB
id | title | challengeType | forumTopicId | dashedName |
---|---|---|---|---|
5900f4a71000cf542c50ffba | Problema 315: orologi a radici digitali | 5 | 301971 | problem-315-digital-root-clocks |
--description--
Sam e Max sono incaricati di trasformare due orologi digitali in due orologi "radici digitali".
Un orologio a radici digitali è un orologio digitale che calcola le radici digitali passo passo.
Quando a un orologio viene dato un numero, lo mostra e poi inizia il calcolo, mostrando tutti i valori intermedi fino a che non arriva al risultato. Per esempio, se l'orologio riceve il numero 137, mostrerà: 137
→ 11
→ 2
e poi tornerà nero, aspettando il prossimo numero.
Ogni numero digitale è costituito da alcuni segmenti luminosi: tre orizzontali (alto, centrale, inferiore) e quattro verticali (alto-sinistra, in alto-destra, in basso-sinistra, in basso-destra). Il numero 1
è fatto dalla linea verticale in alto a destra e dalla linea verticale in basso a destra; il numero 4
è fatto dalla riga orizzontale in mezzo, dalla riga verticale in alto a sinistra, dalla riga verticale in alto a destra e dalla riga verticale in basso a destra. Il numero 8
illumina tutti i trattini.
L'orologio consuma energia solo quando i segmenti vengono accesi o spenti. Accendere un 2
costa 5 transizioni, mentre accendere un 7
ne costa solo 4.
Sam e Max hanno costruito due orologi diversi.
Quando l'orologio di Sam riceve un numero, ad esempio il numero 137: l'orologio mostra 137
, poi lo schermo si spegne, poi il numero seguente si accende (11
), poi lo schermo si spegne di nuovo e infine è mostrato l'ultimo numero (2
) e infine lo schermo torna nero dopo un certo tempo.
Per esempio, con il numero 137, l'orologio di Sam richiede:
137
:(2 + 5 + 4) × 2 = 22
transizioni (137
on/off).11
:(2 + 2) × 2 = 8
transizioni (11
on/off).2
:(5) × 2 = 10
transizioni (2
on/off).
Per un totale di 40 transizioni.
L'orologio di Max funziona in modo diverso. Invece di spegnere l'intero pannello, è abbastanza intelligente da spegnere solo quei segmenti che non saranno necessari per il numero successivo.
Per il numero 137, l'orologio di Max richiede:
137
:2 + 5 + 4 = 11
transizioni (137
su),7
transizioni (per disattivare i segmenti che non sono necessari per il numero11
).11
:0
transizioni (il numero11
è già acceso correttamente),3
transizioni (per disattivare il primo1
e la parte inferiore del secondo1
; la parte superiore è comune con il numero2
).2
:4
transizioni (per attivare i segmenti rimanenti al fine di ottenere un2
),5
transizioni (per disattivare il numero2
).
Per un totale di 30 transizioni.
Naturalmente, l'orologio di Max consuma meno energia di quello di Sam. Ai due orologi vengono dati tutti i numeri primi tra A = {10}^7
e B = 2 × {10}^7
. Trova la differenza tra il numero totale di transizioni necessarie per l'orologio di Sam e quello di Max.
--hints--
digitalRootClocks()
dovrebbe restituire 13625242
.
assert.strictEqual(digitalRootClocks(), 13625242);
--seed--
--seed-contents--
function digitalRootClocks() {
return true;
}
digitalRootClocks();
--solutions--
// solution required