蓝桥杯 ALGO-227 算法训练 乘法次数

算法训练 乘法次数

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

 

问题描述
  给你一个非零整数,让你求这个数的n次方,每次相乘的结果可以在后面使用,求至少需要多少次乘。如24:22=22(第一次乘),2222=24(第二次乘),所以最少共2次;

 

输入格式
  第一行m表示有m(1<=m<=100)组测试数据;
  每一组测试数据有一整数n(0

 

输出格式
  输出每组测试数据所需次数s;

 

样例输入
3
2
3
4

 

样例输出
1
2
2

 

#include 

int mul_times(int n)
{
    if (n == 1)
        return 0;
    if (n % 2 == 0)
        return mul_times(n / 2) + 1;
    else
        return mul_times(n / 2) + 2;
}

int main()
{
    int m, n;

    scanf("%d", &m);
    while (m--)
    {
        scanf("%d", &n);
        printf("%d\n", mul_times(n));
    }

    return 0;
}

 

你可能感兴趣的:(蓝桥杯)