Il y a eu quelques défis liés au doublement du code source: ici et ici . La tâche que nous avons ici est un peu plus difficile, mais devrait être réalisable dans presque toutes les langues.
Dans ce défi, vous prendrez un entier positif arbitraire. Votre programme doit sortir cet entier doublé . Lorsque votre code source est doublé, il prend un entier positif et le sort au carré .
Comment votre code source est-il doublé? Eh bien, vous pouvez l'avoir à votre guise . C'est - à - dire que vous pouvez diviser votre code source vers le haut dans les chaînes d'octets ou des caractères (ou jetons dans Langs lexicalisés) de toute égale longueur que vous voulez , et répéter chaque morceau deux fois de suite.
Pour un programme initial de ABCDEFGHIJKL
, (longueur 12) voici tous les programmes doublés possibles:
Chunk length | Doubled source code
-------------+-------------------------
1 | AABBCCDDEEFFGGHHIIJJKKLL
2 | ABABCDCDEFEFGHGHIJIJKLKL
3 | ABCABCDEFDEFGHIGHIJKLJKL
4 | ABCDABCDEFGHEFGHIJKLIJKL
6 | ABCDEFABCDEFGHIJKLGHIJKL
12 | ABCDEFGHIJKLABCDEFGHIJKL
Notez que cela signifie que les programmes de première longueur ne peuvent être doublés que de deux manières: chaque caractère est doublé ou le programme complet est répété deux fois.
Règles:
- Le code doit être un programme ou une fonction complète.
- Les failles standard sont interdites.
- Les méthodes d'E / S standard sont autorisées.
- Tous les caractères / octets, y compris les espaces et les sauts de ligne, sont comptés dans la longueur du code et contribuent aux morceaux.
- Vous pouvez supposer que l'entrée et son carré peuvent être représentés par le type int / entier de votre langue.
- Vous ne pouvez pas assumer un retour à la ligne ou un autre caractère.
- Indiquez votre taille de bloc dans l'en-tête après le nombre d'octets.
- C'est du golf de code , donc des programmes plus courts sont meilleurs! Si deux programmes ont la même longueur, celui qui utilise la plus petite longueur de morceau l'emporte. (Si vous avez un programme plus long qui utilise une plus petite longueur de morceau, cela vaut également la peine d'être publié!)
- Si votre programme nécessite une deuxième entrée / ligne, vous ne pouvez faire aucune hypothèse sur sa valeur. En particulier, votre programme devrait fonctionner si la deuxième entrée est vide, la même que la première, ou un entier différent. Si votre programme ne nécessite pas de deuxième entrée / ligne, vous pouvez ignorer cette restriction.
5 -> 10
; double code: 5 -> 25 25
.
.0
à la fin)?