Questa sfida è quella di scrivere un programma o uno script che conteggi la somma di tutte le cifre all'interno degli interi da 1 a compreso un determinato numero.
Input, un numero intero positivo. Output, la somma delle cifre in quel numero e tutti i numeri più piccoli.
Esempi:
Input: 5
Integer Sequence: 1, 2, 3, 4, 5
Sum of Digits: 1 + 2 + 3 +4 + 5 = 15
Input: 12
Integer Sequence: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
Sum of Digits: 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 1 + 0 + 1 + 1 + 1 + 2 = 51
Per essere chiari, questo significa contare una somma delle cifre , non i numeri interi. Per gli input a una cifra, questo sarà lo stesso. Tuttavia, input superiori a 10 avranno risposte diverse. Questa sarebbe una risposta errata :
Input: 12
Output: 78
Un altro esempio, per mostrare la differenza:
Input: 10
Integer Sequence: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
Sum of Integers (INCORRECT RESPONSE): 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 = 55
Digit Sequence: 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 0
Sum of Digits (CORRECT RESPONSE): 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 1 + 0 = 46
Un caso di prova più ampio (RISPOSTA CORRETTA):
Input: 1000000
Output: 27000001
Regole e linee guida:
- Il codice inviato deve essere un programma o uno script completo, non solo una funzione. Se il codice richiede inclusioni, importazioni, ecc., Devono essere inclusi nel codice registrato.
- Il numero deve essere inserito dall'utente - non codificato. L'input può essere ricevuto come argomento della riga di comando, file, stdin o qualsiasi altro mezzo con cui la tua lingua può accettare l'input dell'utente.
- Il codice deve essere in grado di gestire correttamente gli input almeno fino a
(2^64)-1
. - Il codice dovrebbe generare solo la somma.
- I programmi e gli script inviati devono essere facili da usare e non sprecare risorse informatiche (ad esempio: non devono dichiarare matrici follemente grandi per contenere ogni personaggio). Non ci sono bonus o penalità rigide per questo, ma per favore sii un buon programmatore.
punteggio:
Il meccanismo di punteggio primario è in base alla lunghezza del codice. I punteggi più bassi sono migliori. Si applicano anche i seguenti bonus e penalità:
- -25 Bonus se il tuo codice è in grado di gestire tutti i numeri positivi, ad esempio:
1234567891234567891234564789087414984894900000000
- -50 Bonus se il tuo codice può gestire espressioni semplici, per esempio
55*96-12
. Per beneficiare di questo bonus, il codice dovrebbe gestire gli+ - / *
operatori (addizione, sottrazione, divisione, moltiplicazione) e far rispettare l'ordine delle operazioni. La divisione è una divisione intera regolare.- L'esempio fornito (
55*96-12
) valuta5268
. Il tuo codice dovrebbe restituire lo stesso per uno di questi input - la risposta è corretta81393
.
- L'esempio fornito (
- -10 Bonus se il tuo codice si qualifica per il bonus -50 e può gestire l'
^
operatore (esponente). - -100 Bonus se il tuo codice si qualifica per il bonus -50 e non usa
eval
o simili per gestire le espressioni. - +300 Penalità se il codice si basa su risorse Web.
55*96-12
tornare?