A volte, quando sono davvero annoiato, mi piace prendere la somma di un array di numeri interi non negativi. Prendo solo la somma di matrici di lunghezze che sono poteri di due. Purtroppo faccio spesso errori. Fortunatamente tengo traccia del mio lavoro mentre procedo nel modo seguente:
Aggiungo coppie di numeri adiacenti fino a quando ne rimane solo uno. Per esempio:
6 + 18 + 9 + 6 + 6 + 3 + 8 + 10
= 24 + 15 + 9 + 18
= 39 + 27
= 66
Il tuo compito è determinare se ho fatto un errore da qualche parte. È possibile ottenere l'input passato alla funzione o leggere dallo standard in. L'output può essere stampato o restituito.
Input: un array / elenco / ecc. di numeri interi non negativi, e possibilmente anche la lunghezza di quell'array se la tua lingua lo richiede. Quell'array sarà composto da tutti i numeri letti da sinistra a destra, quindi dall'alto verso il basso. Ad esempio l'array sopra diventerebbe:
[[6, 18, 9, 6, 6, 3, 8, 10], [24, 15, 9, 18], [39, 27], [66]]
o
[6, 18, 9, 6, 6, 3, 8, 10, 24, 15, 9, 18, 39, 27, 66]
se preferisci.
Output: un singolo booleano che rappresenta se è stato commesso o meno un errore. Il valore booleano può essere rappresentato utilizzando qualsiasi mappatura a condizione che tutti gli input in cui viene commesso un errore restituiscano / stampino un risultato identico e tutti gli input che non contengono errori restituiscano / stampino un risultato identico. Questo dovrebbe essere ovvio, ma quei due output non possono essere gli stessi.
Alcuni esempi di riassunti corretti:
6
5+6
=11
3 + 2 + 4 + 5
= 5 + 9
= 14
[0, 1, 2, 3, 1, 5, 6]
[[1, 2, 4, 8], [3, 12], [15]]
Alcuni esempi di sommatoria errata:
5+4
=8
4 + 4 + 4 + 4
= 9 + 7
= 16
[[1, 2, 3, 4], [7, 3], [10]]
[3, 4, 5, 6, 7, 8, 9]
Tieni presente che posso fare errori e ottenere comunque la risposta giusta. Se commetto un errore, non comporterà mai un numero aggiuntivo o un numero mancante nell'array finale, solo un numero errato.
Sono vietate le scappatoie standard. La risposta più breve in ogni lingua è un vincitore. La risposta più vecchia vincerà in caso di pareggio. Mi riservo il diritto di decidere quale sia la "stessa lingua", ma dirò in anticipo che un punto non può essere guadagnato in Python 2 e Python 3.
[0,1,2,3,1,5,6]
non è valido perché "Input: un array / elenco / ecc. Di numeri interi positivi".