Ce défi consiste à écrire un programme ou un script qui compte la somme de tous les chiffres compris entre 1 et un nombre donné.
Entrée, un entier positif. La sortie, la somme des chiffres de ce nombre et tous les plus petits.
Exemples:
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
Pour être clair, il s’agit de compter la somme des chiffres et non des entiers. Pour les entrées à un chiffre, ce sera la même chose. Cependant, les intrants supérieurs à 10 auront des réponses différentes. Ce serait une réponse incorrecte :
Input: 12
Output: 78
Un autre exemple, pour montrer la différence:
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 cas de test plus grand (réponse correcte):
Input: 1000000
Output: 27000001
Règles et directives:
- Le code soumis doit être un programme complet ou un script, pas seulement une fonction. Si le code nécessite des inclus, des importations, etc., ils doivent être inclus dans le code envoyé.
- Le numéro doit être entré par l'utilisateur - non codé en dur. Les entrées peuvent être reçues sous forme d'argument de ligne de commande, fichier, stdin ou tout autre moyen permettant à votre langue de saisir les entrées de l'utilisateur.
- Le code doit être capable de gérer correctement les entrées au moins jusqu’à
(2^64)-1
. - Le code ne doit générer que la somme.
- Les programmes et scripts soumis doivent être faciles à utiliser et ne pas gaspiller en ressources informatiques (par exemple: ils ne doivent pas déclarer des tableaux incroyablement grands contenant tous les caractères). Il n'y a pas de bonus strict ni de pénalité pour cela, mais soyez de bons programmeurs.
Notation:
Le mécanisme de notation principal est basé sur la longueur du code. Les scores les plus bas sont meilleurs. Les bonus et pénalités suivants s'appliquent également:
- -25 Bonus si votre code peut gérer tous les nombres positifs, par exemple:
1234567891234567891234564789087414984894900000000
- -50 Bonus si votre code peut gérer des expressions simples, par exemple
55*96-12
. Pour pouvoir bénéficier de ce bonus, le code doit gérer les+ - / *
opérateurs (addition, soustraction, division, multiplication) et appliquer l'ordre des opérations. La division est la division entière régulière.- L'exemple donné (
55*96-12
) est évalué à5268
. Votre code devrait renvoyer la même chose pour l'une ou l'autre de ces entrées - la réponse correcte est81393
.
- L'exemple donné (
- -10 Bonus si votre code est éligible au bonus -50 et peut gérer l'
^
opérateur (exposant). - -100 Bonus si votre code se qualifie pour le bonus -50 et n'utilise pas
eval
ou similaire pour gérer les expressions. - Pénalité de +300 si votre code repose sur des ressources Web.
55*96-12
revenir?