问题描述:给你一个非零整数,让你求这个数的n次方,每次相乘的结果可以在后面使用,求至少需要多少次乘。如24:22=22(第一次乘),2222=24(第二次乘),所以最少共2次;
#include<iostream>
using namespace std;
int main(){
int t;
cin>>t;
while(t--){
int n;
cin>>n;
int cnt=0;
while(n!=1){
if(n%2) cnt+=2;//计数不可分成相等的两份
else cnt++;
n/=2;
}
cout<<cnt<<endl;
}
return 0;
}