JAVA 蓝桥杯 算法训练 乘法次数

JAVA 蓝桥杯 算法训练 乘法次数

资源限制
时间限制:1.0s 内存限制:999.4MB

问题描述
  给你一个非零整数,让你求这个数的n次方,每次相乘的结果可以在后面使用,求至少需要多少次乘。如24:22=22(第一次乘),2222=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 Main {
	public static void main(String[] args) {
		Scanner sca=new Scanner(System.in);
		int n=sca.nextInt();
		int[] a=new int[n];
		for(int i=0;i<n;i++) {
			int x=sca.nextInt();
			int index=0;
			while(x!=1) {
				if(x%2!=0) {
					index+=2;
				}else {
					index++;
				}
				x=x/2;
			}
			a[i]=index;
		}
		for(int i=0;i<n;i++) {
			System.out.println(a[i]);
		}
	}


	
}


发布了17 篇原创文章 · 获赞 0 · 访问量 368

猜你喜欢

转载自blog.csdn.net/qq_36551453/article/details/104487327