Cela a été inspiré par le problème 13 - Binaire non répétitif de la récente compétition de HP CodeWars.
Prenons un nombre décimal aléatoire, disons
727429805944311
et regardez sa représentation binaire:
10100101011001011111110011001011101010110111110111
Maintenant, divisez cette représentation binaire en sous-séquences où les chiffres 0
et 1
alternent.
1010 010101 10 0101 1 1 1 1 1 10 01 10 0101 1 1010101 101 1 1 1 101 1 1
Et reconvertissez chaque sous-séquence en décimal.
10 21 2 5 1 1 1 1 1 2 1 2 5 1 85 5 1 1 1 5 1 1
La tâche
Prenez un seul entier positif comme entrée et sortez la séquence d'entiers positifs obtenue par le processus ci-dessus.
Détails
- L'entrée et la sortie doivent être décimales ou unaires.
- Les nombres dans la sortie doivent être séparés d'une manière sensible et lisible par l'homme, et ils doivent être décimaux ou unaires. Aucune restriction sur l'espace blanc. Styles de sortie valides:
[1,2,3]
,1 2 3
,1\n2\n3
où\n
sont les nouvelles lignes littérales, etc.
Cas de test
Input | Output
0 | 0
1 | 1
2 | 2
3 | 1 1
4 | 2 0
5 | 5
6 | 1 2
7 | 1 1 1
8 | 2 0 0
9 | 2 1
10 | 10
50 | 1 2 2
100 | 1 2 2 0
1000 | 1 1 1 1 10 0 0
10000 | 2 1 1 2 0 2 0 0 0
12914 | 1 2 2 1 1 2 2
371017 | 5 42 10 2 1
Remarque supplémentaire: tous les nombres dans la sortie doivent être de la forme (2^k-1)/3
ou 2*(2^k-1)/3
. Autrement dit, 0 1 2 5 10 21, 42, 85, 170, ...
qui est A000975 dans l'OEIS.
|tac
restera dans ma réponse alors :)