最少乘法次数题目描述给你一数2让你求这个数的n次方每次相乘的结果可以在后面使用求至少需要多少次乘。如24:22=22第一次乘2222=24第二次乘所以最少共2次;输入格式第一行m表示有m1=m=100组测试数据;每一组测试数据有一整数n0n=10000;输出格式输出每组测试数据所需次数s;样例输入42341000样例输出12214提示2^7=2^32^32需要两次乘法然后2^3可以通过类似方法计算
解题思路: 对于给定的数n,我们可以通过不断地将n进行平方,直到n为1为止,每次平方的次数就是最少需要的乘法次数。
具体步骤如下:
- 初始化计数器count为0;
- 当n不等于1时,执行以下步骤: a. 如果n是偶数,将n除以2,计数器count加1; b. 如果n是奇数,将n减去1,计数器count加1; c. 将n平方,计数器count加1;
- 输出计数器count。
使用该算法,对于任意给定的n,最多需要进行log2(n)次乘法运算。
代码实现如下:
原文地址: http://www.cveoy.top/t/topic/h9HA 著作权归作者所有。请勿转载和采集!