Bu esinlenerek Binary Sigara Tekrarlayan - Problem 13 arasında HP CodeWars' son yarışma.
Diyelim ki rasgele bir ondalık sayı alalım.
727429805944311
ve ikili gösterime bakın:
10100101011001011111110011001011101010110111110111
Şimdi bu ikili gösterimi basamakların 0
ve 1
alternatiflerin bulunduğu alt dizilere ayırın.
1010 010101 10 0101 1 1 1 1 1 10 01 10 0101 1 1010101 101 1 1 1 101 1 1
Ve her bir sırayı tekrar ondalık basamağa dönüştürün.
10 21 2 5 1 1 1 1 1 2 1 2 5 1 85 5 1 1 1 5 1 1
Görev
Giriş olarak tek, pozitif bir tamsayı alın ve yukarıdaki işlemle elde edilen pozitif tamsayıların sırasını verin.
ayrıntılar
- Giriş ve çıkış ondalık ya da tekdüze olmalıdır.
- Çıktıdaki sayılar mantıklı, okunabilir bir şekilde ayrılmalı ve ondalık ya da tekdüze olmalıdır. Beyaz boşlukta kısıtlama yok. Geçerli çıktı stilleri:
[1,2,3]
,1 2 3
,1\n2\n3
nerede\n
vb edebi yeni satırlar vardır
Test durumları
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
Ek not: çıktıdaki tüm sayılar (2^k-1)/3
ya da biçiminde olmalıdır 2*(2^k-1)/3
. Olduğunu, 0 1 2 5 10 21, 42, 85, 170, ...
, hangi A000975 OEIS içinde.
|tac
cevabımda kalacak o zaman :)