Javascript đếm số 0 đứng đầu

Giải pháp 1. Một cách tiếp cận ngây thơ là chuyển đổi không. thành dạng nhị phân của nó và sau đó đếm số không. số 0 đứng đầu. Nó sử dụng các hoạt động phân chia đắt tiền.  

Show

    C++




    25
    62

    25
    63

    25
    64

    25
    65
    25
    0
    25
    1

     

    25
    2

    25
    3
    25
    4
    25
    3
    25
    6

    25
    7

    25
    8
    25
    9

    25
    8
    25
    11

    25
    8
    25
    3
    25
    14
    25
    15
    25
    16

    25
    8
    25
    3
    25
    19

    25
    8
    25
    1
    25
    2

    25
    8
    25
    7

    25
    5
    25
    6

    25
    5
    25
    8

    25
    8
    25
    00

     

    25
    8
    25
    02
    25
    03

    25
    00

     

    25
    05

    25
    3
    25
    07

    25
    7

    25
    8
    25
    3
    25
    01

    25
    8
    25
    03

    25
    8
    25
    02
    25
    06

    25
    00

    Java




    25
    08

    25
    63

    ________ 7620 ________ 7621

    25
    7

    25
    623
    25
    624
    25
    625
    25
    626
    25
    627

     

    25
    2

    25
    623
    25
    3
    25
    631______03
    25
    6

    25
    7

    25
    8
    25
    9

    25
    8
    25
    11

    25
    8
    25
    3
    25
    641
    25
    626
    25
    627

    25
    8
    25
    3
    25
    646
    25
    647
    25
    627

    25
    8
    25
    1
    25
    651____7652
    25
    653
    25
    652______7655
    25
    647
    25
    657

    25
    8
    25
    7

    25
    5
    25
    01
    25
    652
    25
    03

    25
    5
    25
    8

    25
    8
    25
    00

     

    25
    8
    25
    02
    25
    03

    25
    00

     

    25
    12

    25
    13
    25
    623
    25
    15
    25
    16

    25
    7

    25
    8
    25
    3
    25
    20
    25
    21
    25
    627

    25
    8
    25
    24

    25
    00

    25
    00

     

    25
    27

    Python3




    25
    28

    25
    29

    25
    30

     

    25
    31

    25
    32

    25
    33
    25
    34

    25
    8

    25
    8
    25
    37

    25
    8
    25
    39

    25
    8
    25
    41____042
    25
    43

    25
    8
    25
    45
    25
    42
    25
    647

    25
    8
    25
    1
    25
    651______7652
    25
    52
    25
    53
    25
    652
    25
    55
    25
    42
    25
    42
    25
    647
    25
    59

    25
    5
    25
    61
    25
    42
    25
    63
    25
    652
    25
    657

    25
    5
    25
    45
    25
    68
    25
    42
    25
    652

     

    25
    8
    25
    02
    25
    45

     

    25
    74

    25
    61
    25
    42
    25
    21

    25
    78
    25
    79

     

    25
    80

    25
    81

    C#




    25
    82

    25
    63

    25
    65
    25
    85

     

    ________ 7620 ________ 7621

    25
    7

    25
    623
    25
    624
    25
    91

     

    25
    92

    25
    93

    25
    623
    25
    3
    25
    631______03
    25
    6

    25
    7

    25
    8
    25
    101

    25
    8
    25
    103

    25
    8
    25
    3
    25
    106

    25
    8
    25
    3
    25
    19

    25
    8
    25
    1
    25
    112

    25
    8
    25
    7

    25
    5
    25
    6

    25
    5
    25
    8

    25
    8
    25
    00

    25
    8
    25
    02
    25
    03

    25
    00

     

    25
    12

    25
    13
    25
    623
    25
    15
    25
    129

    25
    7

    25
    8
    25
    3
    25
    01

    25
    8
    25
    135

    25
    00

    25
    00

     

    25
    138

    Javascript




    25
    139

     

    25
    140

    25
    63

     

    25
    142

     

    25
    2

    25
    144
    25
    145

    25
    7

    25
    8
    25
    9

    25
    8
    25
    11

    25
    8
    25
    152

    _______08

    25
    154

    25
    8
    25
    1
    25
    112

    25
    8
    25
    7

    25
    5
    25
    6

    25
    5
    25
    8

    25
    8
    25
    00

    25
    166

    25
    8
    25
    02
    25
    03

    25
    00

     

    25
    12

    25
    172

    25
    173

    25
    8

     

    25
    175

     

    25
    176

    Đầu ra

    25

    Độ phức tạp về thời gian. O(1)
    Không gian phụ trợ. Ô(1)

    Giải pháp 2. Một cách tiếp cận hiệu quả là sử dụng thao tác dịch chuyển phải Bitwise để đạt được điều tương tự. Các bước trong thuật toán là.
    Gọi x là số của chúng ta. thì
     

    25
    1

    Cách tiếp cận trên chỉ thực hiện trong 12 đến 20 lệnh

    C++




    25
    62

    25
    63

    25
    64

    25
    65
    25
    0
    25
    1

     

    25
    2

    25
    3
    25
    631
    25
    3
    25
    6

    25
    7

    _______08

    25
    190

    25
    8
    25
    3
    25
    193

    _______08

    25
    195

    25
    8
    25
    197
    25
    198

    25
    5
    25
    00

    25
    5
    25
    02

    25
    8
    25
    00

    25
    8
    25
    06

    25
    8
    25
    197
    25
    198

    25
    5
    25
    11

    25
    5
    25
    02

    25
    8
    25
    00

    25
    8
    25
    17

    25
    8
    25
    197
    25
    198

    25
    5
    25
    22

    25
    5
    25
    02

    25
    8
    25
    00

    25
    8
    25
    28

    25
    8
    25
    197
    25
    198

    25
    5
    25
    33

    25
    5
    25
    02

    25
    8
    25
    00

    25
    8
    25
    39

    25
    8
    25
    197
    25
    42

    25
    5
    25
    02
    25
    45

    25
    8
    25
    02
    25
    48

    25
    00

     

    25
    05

    25
    3
    25
    07

    25
    7

    25
    8
    25
    3
    25
    01

    25
    8
    25
    03

    25
    8
    25
    02
    25
    06

    25
    00

    Java




    25
    08

    25
    63

    25
    65
    25
    66

     

    25
    620
    25
    68

    25
    8
    25
    2

    25
    623
    25
    3
    25
    631______03
    25
    6

    25
    7

    25
    8
    25
    3
    25
    79

    25
    8
    25
    3
    25
    82
    25
    43
    25
    627

    25
    8
    25
    86____087
    25
    627

    25
    8
    25
    197
    25
    91
    25
    647
    25
    93

    25
    5
    25
    95____087
    25
    627

    25
    5
    25
    02

    25
    8
    25
    00

    25
    8
    25
    86____7626
    25
    627

    25
    8
    25
    197
    25
    91
    25
    647
    25
    93

    25
    5
    25
    95____7626
    25
    627

    25
    5
    25
    02

    25
    8
    25
    00

    25
    8
    25
    86____3021
    25
    627

    25
    8
    25
    197
    25
    91
    25
    647
    25
    93

    25
    5
    25
    95____3021
    25
    627

    25
    5
    25
    02

    25
    8
    25
    00

    25
    8
    25
    86____3038
    25
    627

    25
    8
    25
    197
    25
    91
    25
    647
    25
    93

    25
    5
    25
    95____3038
    25
    627

    25
    5
    25
    02

    25
    8
    25
    00

    25
    8
    25
    86____7652
    25
    627

    25
    8
    25
    197
    25
    91
    25
    647
    25
    657

    25
    5
    25
    02
    25
    064____3038
    25
    627

    25
    8
    25
    02
    25
    48

    25
    00

     

    25
    05

    25
    8
    25
    13
    25
    623
    25
    15
    25
    076

    25
    8
    25
    3
    25
    20
    25
    21
    25
    627

    _______08____3083

    25
    8
    25
    00

    25
    086

    25
    00

    Python3




    25
    088

    25
    089

     

     

    25
    090

    25
    33
    25
    34

    25
    8
    25
    094
    25
    42
    25
    43
    25
    627

    25
    8
    25
    099
    25
    42
    25
    001
    25
    87
    25
    627

    25
    8
    25
    197
    25
    006
    25
    42
    25
    647
    25
    59

    25
    5
    25
    094
    25
    42
    25
    094
    25
    53
    25
    87
    25
    627

    25
    5
    25
    61
    25
    42
    25
    79

     

    25
    8
    25
    099
    25
    42
    25
    001
    25
    626
    25
    627

    25
    8
    25
    197
    25
    006
    25
    42
    25
    647
    25
    59

    25
    5
    25
    094
    25
    42
    25
    094
    25
    53
    25
    626
    25
    627

    25
    5
    25
    61
    25
    42
    25
    79

     

    25
    8
    25
    099
    25
    42
    25
    001
    25
    021
    25
    627

    25
    8
    25
    197
    25
    006
    25
    42
    25
    647
    25
    59

    25
    5
    25
    094
    25
    42
    25
    094
    25
    53
    25
    021____7627

    25
    5
    25
    61
    25
    42
    25
    79

     

    25
    8
    25
    099
    25
    42
    25
    001
    25
    038
    25
    627

    25
    8
    25
    197
    25
    006
    25
    42
    25
    647
    25
    59

    25
    5
    25
    094
    25
    42
    25
    094
    25
    53
    25
    038
    25
    627

    25
    5
    25
    61
    25
    42
    25
    79

     

    25
    8
    25
    099
    25
    42
    25
    001
    25
    652
    25
    627

    25
    8
    25
    197
    25
    006
    25
    42
    25
    647
    25
    59

    25
    5
    25
    02
    25
    094
    25
    53
    25
    038
    25
    627

    25
    8
    25
    02
    25
    094
    25
    53
    25
    6212

     

     

    25
    6213

    25
    33
    25
    6215

    25
    8
    25
    61
    25
    42
    25
    21
    25
    627

    25
    8
    25
    78
    25
    79

     

     

    25
    197
    25
    6225
    25
    42
    25
    42
    25
    6228
    25
    6229

    25
    8
    25
    07

    C#




    25
    82

    25
    63

    25
    65
    25
    85

     

    ________ 7620 ________ 7621

    25
    7

    25
    6239

    25
    6240

    25
    623
    25
    3
    25
    631______03
    25
    6

    25
    7

    25
    8
    25
    3
    25
    79

    25
    8
    25
    3
    25
    193

    _______08

    25
    195

    25
    8

    25
    8
    25
    197
    25
    42

    25
    8
    25
    7

    25
    5
    25
    00

    25
    5
    25
    02

    25
    8
    25
    00

    25
    8
    25
    06

    25
    8

    25
    8
    25
    197
    25
    42

    25
    8
    25
    7

    25
    5
    25
    11

    25
    5
    25
    02

    25
    8
    25
    00

    25
    8
    25
    17

    25
    8

    25
    8
    25
    197
    25
    42

    25
    8
    25
    7

    25
    5
    25
    22

    25
    5
    25
    02

    25
    8
    25
    00

    25
    8
    25
    28

    25
    8

    25
    8
    25
    197
    25
    42

    25
    8
    25
    7

    25
    5
    25
    33

    25
    5
    25
    02

    25
    8
    25
    00

    25
    8
    25
    39

    25
    8

    25
    8
    25
    197
    25
    42

    25
    5
    25
    02
    25
    45

    25
    8
    25
    02
    25
    48

    25
    00

     

    25
    12

    25
    623
    25
    13
    25
    15
    25
    6326

    25
    7

    25
    8
    25
    3
    25
    01

    25
    8
    25
    135

    25
    00

    25
    00

     

    25
    6335

    PHP




    25
    6336

    25
    6337

    25
    63

     

    25
    2

    25
    144
    25
    631
    25
    6342
    25
    657

    25
    7

    25
    8
    25
    6346
    25
    627

    25
    8
    25
    6349
    25
    6350

    25
    8
    25
    6346
    25
    42
    25
    6342
    25
    6355

    25
    8
    25
    197
    25
    6358
    25
    6346
    25
    6360

    25
    8
    25
    7

    25
    5
    25
    6349
    25
    42
    25
    6349
    25
    6367

    25
    5
    25
    6342
    25
    42
    25
    6346
    25
    627

    25
    8
    25
    00

    25
    8
    25
    6346
    25
    42____76342
    25
    6379

    25
    8
    25
    197
    25
    6358
    25
    6346
    25
    6360

    25
    8
    25
    7

    25
    5
    25
    6349
    25
    42
    25
    6349
    25
    6391

    25
    5
    25
    6342
    25
    42
    25
    6346
    25
    627

    25
    8
    25
    00

    25
    8
    25
    6346
    25
    42____76342
    25
    6403

    25
    8
    25
    197
    25
    6358
    25
    6346
    25
    6360

    25
    8
    25
    7

    25
    5
    25
    6349
    25
    42
    25
    6349
    25
    6415

    25
    5
    25
    6342
    25
    42
    25
    6346
    25
    627

    25
    8
    25
    00

    25
    8
    25
    6346
    25
    42
    25
    6342
    25
    6427

    25
    8
    25
    197
    25
    6358
    25
    6346
    25
    6432

    25
    5
    25
    6349
    25
    42
    25
    6349
    25
    6437

    25
    5
    25
    6342
    25
    42
    25
    6346
    25
    627

    25
    8
    25
    00

    25
    8
    25
    6346
    25
    42____76342
    25
    6449

    25
    8
    25
    197
    25
    6358
    25
    6346
    25
    6360

    25
    5
    25
    02
    25
    6349
    25
    6437

    25
    8
    25
    02
    25
    6349
    25
    53
    25
    6342
    25
    627

    25
    00

     

    25
    12

    25
    6342
    25
    6468

    25
    6469
    25
    631____76342
    25
    03

     

    25
    6473

    25
    6474

    Javascript




    25
    139

     

    25
    140

    25
    63

     

    25
    166
    25
    2

    25
    144
    25
    145

    25
    7

    _______08____76484

    _______08____76486

    _______08

    25
    195

    25
    8
    25
    197
    25
    198

    25
    5
    25
    00

    25
    5
    25
    02

    25
    8
    25
    00

    25
    8
    25
    06

    25
    8
    25
    197
    25
    198

    25
    5
    25
    11

    25
    5
    25
    02

    25
    8
    25
    00

    25
    8
    25
    17

    25
    8
    25
    197
    25
    198

    25
    5
    25
    22

    25
    5
    25
    02

    25
    8
    25
    00

    25
    8
    25
    28

    25
    8
    25
    197
    25
    198

    25
    5
    25
    33

    25
    5
    25
    02

    25
    8
    25
    00

    25
    8
    25
    39

    25
    8
    25
    197
    25
    42

    25
    5
    25
    02
    25
    45

    25
    8
    25
    02
    25
    48

    25
    00

     

    25
    05

    25
    172

    25
    173

     

     

    25
    6546

     

    25
    176

    Đầu ra

    25

    Độ phức tạp về thời gian. O(1)
    Không gian phụ trợ. Ô(1)

    Giải pháp 3. Sử dụng GCC  __builtin_clz(x). Hàm này dùng để đếm số 0 đứng đầu của số nguyên trong đó clz là viết tắt của đếm số 0 đứng đầu. Nó đếm một số số 0 trước lần xuất hiện đầu tiên của một (bit thiết lập)

    C




    25
    6548

    25
    3
    25
    07

    25
    7

    25
    8
    25
    3
    25
    6554
    25
    6555

    25
    8
    25
    6557
    25
    6358

    25
    5
    25
    6560____76561

    25
    5
    25
    6563

    25
    8
    25
    02
    25
    06

    25
    00

    Đầu ra

    25
    0

    Độ phức tạp về thời gian. O(1)
    Không gian phụ trợ. Ô(1)

    Giải pháp 4. Sử dụng các chức năng được xác định trước

    Trong Java, phương thức numberOfLeadingZeros() của lớp Integer và Long được sử dụng để đếm các số 0 đứng đầu của số nguyên