#YHW402. 加一乘二

加一乘二

题目:加一乘二

题目描述:

你初始有一个数字 1 ,可以对它进行若干次操作。每次操作要么把它乘以 2 ,要么把它加上 1 。请问至少进行几次操作可以让它恰好等于给定的正整数 n

输入格式:

输入一行一个正整数 n

输出格式:

输出一行一个正整数,表示达到 n 所需的最少操作次数。

样例 1:

输入:

3

输出:

2

样例 2:

输入:

15

输出:

6

样例 2 解释:

先做两次加一运算得到 3,然后做一次乘二运算得到 6,然后做一次加一运算得到 7,做一次乘二运算得到 14,再加一得到 15,共 6 次运算。

数据规模与约定:

测试点编号

  • 1 - 2: n10n ≤ 10
  • 3 - 4: n20n ≤20
  • 5 - 6: n105n ≤10^5
  • 7 - 8: n109n ≤10^9
  • 9 - 10; n1018n ≤10^{18}