#Z0708104. 最少乘法次数
最少乘法次数
题目描述:
给你一数2,让你求这个数的n次方,每次相乘的结果可以在后面使用,求至少需要多少次乘。如2^4^:2*2=2^2^(第一次乘),2^2^*2^2^=2^4^(第二次乘),所以最少共2次;
输入格式:
第一行m表示有m(1<=m<=100)组测试数据; 每一组测试数据有一整数n(0<n<=10000);
输出格式:
输出每组测试数据所需次数s;
样例输入:
4
2
3
4
1000
样例输出:
1
2
2
14
提示:
2^7=(2^3)*(2^3)*2,需要两次乘法,然后2^3可以通过类似方法计算。
2^1000=(2^500)*(2^500),需要一次乘法,然后2^500可以通过类似方法计算。
这是一种快速乘方算法的思想,由此可以看出,原始乘方算法可以被极大的优化。
相关
在以下作业中: