Ini terinspirasi oleh Soal 13 - Biner Tidak Berulang dari kompetisi HP CodeWars baru-baru ini.
Mari kita ambil angka desimal acak, katakanlah
727429805944311
dan lihat representasi binernya:
10100101011001011111110011001011101010110111110111
Sekarang pisahkan representasi biner itu ke dalam urutan di mana digit 0
dan 1
bergantian.
1010 010101 10 0101 1 1 1 1 1 10 01 10 0101 1 1010101 101 1 1 1 101 1 1
Dan ubah setiap urutan kembali menjadi desimal.
10 21 2 5 1 1 1 1 1 2 1 2 5 1 85 5 1 1 1 5 1 1
Tugas
Ambil satu, bilangan bulat positif sebagai input dan output urutan bilangan bulat positif yang diperoleh oleh proses di atas.
Detail
- Input dan output harus dalam desimal atau unary.
- Angka-angka dalam output harus dipisahkan dengan cara yang masuk akal, dapat dibaca manusia, dan harus dalam desimal atau unary. Tidak ada batasan pada ruang putih. Hari gaya keluaran:
[1,2,3]
,1 2 3
,1\n2\n3
mana\n
yang baris literal, dll
Uji kasus
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
Catatan tambahan: semua angka dalam output harus dalam bentuk (2^k-1)/3
atau 2*(2^k-1)/3
. Yaitu 0 1 2 5 10 21, 42, 85, 170, ...
,, yang A000975 di OEIS.
|tac
akan tetap dalam jawaban saya kemudian :)