题目描述:
给你一数2,让你求这个数的n次方,每次相乘的结果可以在后面使用,求至少需要多少次乘。如24:2*2=22(第一次乘),22*22=24(第二次乘),所以最少共2次;
输入格式:
第一行m表示有m(1<=m<=100)组测试数据;
每一组测试数据有一整数n(0<n<=10000);
输出格式:
输出每组测试数据所需次数s;
样例输入:
4 2 3 4 1000
样例输出:
1 2 2 14
代码如下:
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,m;
cin>>n;
while(n--){
cin>>m;
int s=0;
while(m){
if(m&1){
m--;
s++;
}
s++;
m/=2;
}
cout<<s-2<<endl;
}
return 0;
}