Số nhị phân

Đề bài

Mô tả

Cho một số nguyên dương x được biểu diễn ở hệ nhị phân. Mỗi bước thực hiện một trong hai phép biến đổi sau:

  • Nếu x lẻ, cộng thêm 1.
  • Nếu x chẵn, chia x cho 2.

Quá trình kết thúc khi x=1. Hãy đếm số phép biến đổi cần thực hiện.

Dữ liệu vào

Một dòng chứa chuỗi nhị phân x (chữ số đầu tiên khác 0).

Dữ liệu ra

In ra số phép biến đổi cần thực hiện để đưa x về 1.

Ràng buộc

  • 1≤ độ dài của x ≤106.
  • Chữ số đầu tiên của x luôn là 1.

Ví dụ

Input Output Giải thích
1 0 x=1 ngay từ đầu nên không cần phép biến đổi nào.
101110 8 1011102=46. Lần lượt: 46→23→24→12→6→3→4→2→1, tổng cộng 8 bước.
1001001 12 10010012=73, cần 12 phép biến đổi để đưa về 1.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0