打字机
Submit solution
Points:
100
Time limit:
1.0s
Memory limit:
80M
Author:
Problem type
Allowed languages
C, C++
打字机
题目描述
机器猫要在电脑前打字。当前文档里已有 \(1\) 个字,他需要把文档变成恰好 \(n\) 个字。 在任意时刻,若文档中有 \(x\) 个字,可以进行以下两种操作之一:
- \(在末尾新增一个字\):字数变为
x + 1; - \(整体复制粘贴一次\):字数变为
2x。
请计算,为了得到恰好 \(n\) 个字,机器猫最少需要进行多少次操作。
输入格式
- 一行,一个正整数
n。
输出格式
- 一行,一个正整数,表示达到
n个字所需的最少操作次数。
样例
\(输入\)
16
\(输出\)
4
\(输入\)
5
\(输出\)
3
样例说明
- 对于
n = 16:1 → 2 → 4 → 8 → 16,共 \(4\) 步。 - 对于
n = 5:1 → 2 → 4 → 5,共 \(3\) 步。
数据范围
\(1 \le n \le 10^6\)
Comments