Sonraki karakter, herhangi bir miktarda karakteri silerek diğerinden alabileceğiniz herhangi bir dizidir. Belirgin boş olmayan sekanslar 100
vardır 0
, 1
, 00
, 10
, 100
. Belirgin boş olmayan sekanslar 1010
vardır 0
, 1
, 00
, 01
, 10
, 11
, 010
, 100
, 101
, 110
, 1010
.
Pozitif bir tamsayı n veren bir program veya işlev yazın , n'nin ikili genişlemesinin boş olmayan ayrı alt dizilerinin sayısını döndürür .
Örnek: beri 4
olduğu 100
ikilik sistemde ve biz o kadar, beş ayrı boş olmayan alt diziler yukarıda olduğunu gördüm f(4) = 5
. N = 1'den başlayarak dizi başlar:
1, 3, 2, 5, 6, 5, 3, 7, 10, 11, 9, 8, 9, 7, 4, 9, 14, 17, 15, 16, 19, 17, 12
Ancak, programınız herhangi bir modern makinede bir saniyenin altında herhangi bir n <2 50 için çalışmalıdır . Bazı büyük örnekler:
f(1099511627775) = 40
f(1099511627776) = 81
f(911188917558917) = 728765543
f(109260951837875) = 447464738
f(43765644099) = 5941674