Ciò è stato ispirato dal Problema 13 - Binario non ripetuto della recente competizione di HP CodeWars.
Prendiamo un numero decimale casuale, diciamo
727429805944311
e guarda la sua rappresentazione binaria:
10100101011001011111110011001011101010110111110111
Ora dividere che la rappresentazione binaria in sottosequenze dove le cifre 0
e 1
si alternano.
1010 010101 10 0101 1 1 1 1 1 10 01 10 0101 1 1010101 101 1 1 1 101 1 1
E converti ogni sottosequenza in decimale.
10 21 2 5 1 1 1 1 1 2 1 2 5 1 85 5 1 1 1 5 1 1
L'obiettivo
Prendi un singolo numero intero positivo come input e genera la sequenza di numeri interi positivi ottenuti dal processo precedente.
Dettagli
- L'input e l'output devono essere decimali o unari.
- I numeri nell'output devono essere separati in modo sensibile e leggibile dall'uomo e devono essere decimali o unari. Nessuna restrizione sullo spazio bianco. Stili di output validi:
[1,2,3]
,1 2 3
,1\n2\n3
in cui\n
sono a capo letterali, ecc
Casi 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
Nota aggiuntiva: tutti i numeri nell'output devono essere nella forma (2^k-1)/3
o 2*(2^k-1)/3
. Cioè 0 1 2 5 10 21, 42, 85, 170, ...
, che è A000975 nell'OEIS.
|tac
rimarrò nella mia risposta allora :)