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

算法训练 乘法次数

时间限制: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

#include <stdio.h>

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;
}
发布了357 篇原创文章 · 获赞 46 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/liulizhi1996/article/details/104599535