幂运算

【题目描述】

从m开始,我们只需要6次运算就可以计算出m31:

m^2=m*m,m^4=m^2*m^2,m^8=m^4*m^4,m^16=m^8*m^8,m^32=m^16*m^16,m^31=m^32÷m。

请你找出从m开始,计算m^n的最少运算次数。在运算的每一步,都应该是m的正整数次方,换句话说,类似m^-3是不允许出现的。

【输入描述】

输入为一个正整数n。

【输出描述】

输出为一个整数,为从m开始,计算mn的最少运算次数。

【样例输入】

样例1:
1

样例2:
31

样例3:
70

【样例输出】

样例1:
0

样例2:
6

样例3:
8

【数据范围及提示】

1 <= n <= 1000。

原文地址:https://www.cnblogs.com/Ackermann/p/5573883.html