Diese Herausforderung besteht darin, ein Programm oder ein Skript zu schreiben, das die Summe aller Ziffern innerhalb der ganzen Zahlen von 1 bis einschließlich einer bestimmten Zahl zählt.
Eingabe, eine positive ganze Zahl. Ausgabe, die Summe der Ziffern dieser Zahl und aller kleineren Zahlen.
Beispiele:
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
Um klar zu sein, ist dies eine Summe der Ziffern zu zählen - nicht die ganzen Zahlen. Dies gilt auch für einstellige Eingaben. Eingaben, die größer als 10 sind, reagieren jedoch unterschiedlich. Dies wäre eine falsche Antwort:
Input: 12
Output: 78
Ein weiteres Beispiel, um den Unterschied zu zeigen:
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
Ein größerer Testfall (RICHTIGE ANTWORT):
Input: 1000000
Output: 27000001
Regeln & Richtlinien:
- Der übermittelte Code muss ein vollständiges Programm oder Skript sein - nicht nur eine Funktion. Wenn für den Code Einschlüsse, Importe usw. erforderlich sind, müssen diese im Buchungscode enthalten sein.
- Die Nummer muss vom Benutzer eingegeben werden - nicht fest codiert. Eingaben können als Befehlszeilenargument, Datei, Standardeingabe oder auf andere Weise empfangen werden, mit der Ihre Sprache Benutzereingaben verarbeiten kann.
- Der Code muss in der Lage sein, mindestens bis zu Eingaben ordnungsgemäß zu verarbeiten
(2^64)-1
. - Der Code sollte nur die Summe ausgeben.
- Eingereichte Programme und Skripte sollten benutzerfreundlich sein und keine Computerressourcen verschwenden (z. B .: Sie sollten keine wahnsinnig großen Arrays deklarieren, in denen jedes Zeichen Platz findet). Es gibt keinen strengen Bonus oder eine Strafe dafür, aber bitte seid gute Programmierer.
Wertung:
Der primäre Bewertungsmechanismus ist die Codelänge. Niedrigere Werte sind besser. Die folgenden Boni und Strafen gelten ebenfalls:
- -25 Bonus, wenn Ihr Code alle positiven Zahlen verarbeiten kann, zum Beispiel:
1234567891234567891234564789087414984894900000000
- -50 Bonus, wenn Ihr Code beispielsweise einfache Ausdrücke verarbeiten kann
55*96-12
. Um sich für diesen Bonus zu qualifizieren, sollte der Code+ - / *
Operatoren (Addition, Subtraktion, Division, Multiplikation) handhaben und die Reihenfolge der Operationen durchsetzen. Division ist eine reguläre Ganzzahldivision.- Das angegebene Beispiel (
55*96-12
) ergibt5268
. Ihr Code sollte für jede dieser Eingaben den gleichen Wert zurückgeben - die richtige Antwort lautet81393
.
- Das angegebene Beispiel (
- -10 Bonus, wenn sich Ihr Code für den -50 Bonus qualifiziert und mit dem
^
(Exponenten-) Operator umgehen kann . - -100 Bonus, wenn sich Ihr Code für den -50 Bonus qualifiziert und keine
eval
oder ähnliche Ausdrücke verwendet. - +300 Strafe, wenn Ihr Code auf Webressourcen angewiesen ist.
55*96-12
zurückkehren?