【问题描述】
给你一个非零整数,让你求这个数的n次方,每次相乘的结果可以在后面使用,求至少需要多少次乘。如24:2*2=22(第一次乘),22*22=24(第二次乘),所以最少共2次;
【输入格式】
第一行m表示有m(1<=m<=100)组测试数据;
每一组测试数据有一整数n(0<n<=100000000);
【输出格式】
输出每组测试数据所需次数s;
【样例输入】
3
2
3
4
【样例输出】
1
2
2
import java.util.Scanner;
/*
关键大家要理解不用考虑是哪个具体数的几次方,因为任意数的次方结果都一样
*/
public class five {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
int num=scanner.nextInt();
int[] arr=new int[num];
for(int i=0;i<num;i++) {
arr[i]=scanner.nextInt();
}
for(int i=0;i<arr.length;i++) {
int a=0;
while(arr[i]!=1) {
if(arr[i]%2==0) {
a++;
}else {
a+=2;
}
arr[i]/=2;
}
System.out.println(a);
}
}
}