Skip to content

Latest commit

 

History

History
8 lines (8 loc) · 1.08 KB

task2.md

File metadata and controls

8 lines (8 loc) · 1.08 KB

Screenshot 2023-04-22 at 13.38.22.png Пусть F (n) — число разрезов для числа n. F (1) = 0. Заметим, что F(2ˆk) = k, потому что можно k раз совмещать все рулеты и резать их пополам. Также заметим, что F (n) < F (n + 1), потому что разрезание рулета на n частей-подзадача от разрезания рулета на n + 1 часть. Кроме того, заметим, что за k разрезов можно получить не больше, чем 2ˆk кусков. Совместив полученные знания, получаем, что для n ∈ (2ˆ(k−1);2ˆk] ответом будет число k. Значит, нужно найти старший бит числа n, что можно сделать с помощью цикла, в котором n будет итеративно делиться на два. Число итераций и будет ответом.