Votre travail consiste à prendre ce numéro en entrée (bien qu'il devrait également fonctionner avec tout autre numéro):
18349570345710975183495703457109751834957034571097518349570345710975183495703457109761834957034571097518349570345710975183495703457109751834957034571097518349570345710976183495703457109751834957034571097518349570345710975183495703457109751834957034571097618349570345710975183495703457109751834957034571097518349570345710975183495703457109761834957034571097518349570345710975183495703457109751834957034571097518349570345710976183495703457109751834957034571097518349570345710975183495703457109751834957034571097618349570345710975183495703457109751834957034571097518349570345710975183495703457109761834957034571097518349570345710975183495703457109751834957034571097518349570345710976183495703457109751834957034571097518349570345710975183495703457109751834957034571097618349570345710975183495703457109751834957034571097518349570345710975183495703457109761834957034571097518349570345710975183495703457109751834957034571097518349570345710976183495703457109751834957034571097518349570345710975183495703457109751834957034571097618349570345710975183495703457109751834957
et trouver la plus petite période, qui est dans ce cas:
1834957034571097518349570345710975183495703457109751834957034571097518349570345710976
Bonne chance et amusez-vous bien!
Clarifications :
- Le numéro d'entrée a au moins une période et une période partielle
- La période commence toujours au début du numéro saisi
- Période signifie dans ce cas une séquence de nombres qui se répète.
>
le mauvais sens.Réponses:
CJam,
2016 octetsLit à partir de STDIN. Essayez-le en ligne.
Le code ci-dessus nécessite une mémoire O (n 2 ) , où n est la longueur de l'entrée. Il va travailler avec 2 16 chiffres, aussi longtemps que vous avez assez de mémoire.
Cela peut être fixé au coût de cinq octets supplémentaires:
Exemple d'exécution
Comment ça fonctionne
Pour l'entrée Q, l'idée est de répéter le premier caractère len (Q) fois et de vérifier si l'index de Q dans le résultat est 0. Si ce n'est pas le cas, répétez les deux premiers caractères len (Q) fois, etc.
la source
Regex (saveur .NET),
2322 octetsCela correspondra à la période requise en tant que sous-chaîne.
Testez-le ici.
Comment ça marche?
la source
aabaabaab
, correspondra probablementa
parce qu'il se répète. Je n'ai pas encore trouvé de moyen de le résoudre dans PCRE. Dennis a essayé une réponse maintenant supprimée, mais celle-ci n'a pas fonctionné non plus. Btw, vous n'avez pas besoing
.Python 60
s
est la chaîne de chiffrespar exemple:
la source
Pyth , 14 caractères
Explication:
Essentiellement, il génère toutes les séquences initiales de l'entrée, se répète chacune une
len(z)
fois et voit siz
, l'entrée, se trouve dans la chaîne résultante.Ce n'est pas une réponse valide, mais une fonctionnalité a été récemment ajoutée à Pyth, après que la question a été posée, qui permet une solution à 12 caractères:
Cela utilise le filtre sur la fonction entière.
la source
Japt , 8 octets
Essayez-le
-2 octets grâce à Shaggy!
Transpiled JS expliqué:
la source
å+ æ@¶îX
Java 8, 125 octets
Prend l'entrée sous forme de chaîne car il n'y a aucun moyen raisonnable de représenter un nombre de 1000+ chiffres en Java autre qu'une chaîne (pas de BigInteger s'il vous plaît).
Essayez-le en ligne!
la source
String
par var. -3 octets