Input:
un elenco / array di numeri interi per i quali ciascun elemento è compreso nell'intervallo di 2-36
.
Output:
la somma degli interi (come base 10), in cui ogni intero successivo è nella base del valore precedente (a partire da una base 10 normale).
Esempio:
supponiamo di avere un input come questo: [4, 12, 34, 20, 14, 6, 25, 13, 33]
Quindi abbiamo una somma come questa:
4 (4 in base-10) +
6 (12 in base-4 ) +
40 (34 in base-12) +
68 (20 in base-34) +
24 (14 in base-20) +
6 (6 in base-14) +
17 (25 in base-6 ) +
28 (13 in base-26) +
42 (33 in base-13)
= 235
Spiegazione della base matematica:
ho considerato di presumere che tutti sappiano come funziona la base, ma darò un breve esempio di come funziona comunque, per ogni evenienza. Prendiamo34 in base-12
ad esempio, come siamo arrivati40
?
1-34 in regular base-10:
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34
So, from 1 to 34 is 34 steps in base-10
1-34 in base-12:
1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 1A, 1B, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 2A, 2B, 30, 31, 32, 33, 34
So, from 1 to 34 is 40 steps in base-12
Ecco forse un calcolatore utile.
Regole della sfida:
- Le dimensioni dell'array saranno entro un intervallo ragionevole (come
1-100
/ vedi casi di test). - I casi di test non conterranno mai numeri interi di cui il valore corrente non è valido per la sua base precedente (cioè non avrai mai qualcosa di simile
19 in base-6
o6 in base-6
, poiché base-6 contiene solo le cifre0-5
). - Puoi prendere l'input come preferisci. Può essere una matrice int, una stringa separata da virgola / spazio, ecc. La tua chiamata. (È anche consentito invertire l'int-array, il che potrebbe essere utile per linguaggi di programmazione basati su stack.)
Regole generali:
- Questo è code-golf , quindi vince la risposta più breve in byte.
Non permettere alle lingue di golf di codice di scoraggiarti dal pubblicare risposte con lingue non di golf. Prova a trovare una risposta il più breve possibile per qualsiasi linguaggio di programmazione. - Per la tua risposta valgono regole standard , quindi puoi usare STDIN / STDOUT, funzioni / metodo con i parametri corretti, programmi completi. La tua chiamata.
- Sono vietate le scappatoie predefinite .
- Se possibile, aggiungi un link con un test per il tuo codice.
- Inoltre, si prega di aggiungere una spiegazione, se necessario.
Casi test:
[4, 12, 34, 20, 14, 6, 25, 13, 33] -> 235
4+ 6+ 40+ 68+ 24+ 6+ 17+ 28+ 42
[5, 14, 2, 11, 30, 18] -> 90
5+ 9+ 2+ 3+ 33+ 38
[12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 12, 2, 11, 3, 10, 2, 10] -> 98
12+ 13+ 11+ 9+ 8+ 7+ 6+ 5+ 4+ 3+ 5+ 2+ 3+ 3+ 3+ 2+ 2
[36, 36] -> 150
36+ 114