0
点赞
收藏
分享

微信扫一扫

NYOJ-----最少乘法次数

杨沐涵 2022-03-18 阅读 27


最少乘法次数

时间限制:1000 ms  |  内存限制:65535 KB 难度:3   描述

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


  输入 第一行m表示有m(1<=m<=100)组测试数据;

每一组测试数据有一整数n(0<n<=10000); 输出 输出每组测试数据所需次数s; 样例输入

3
2
3
4

样例输出

1
2
2

NYOJ-----最少乘法次数_测试数据NYOJ-----最少乘法次数_测试数据_02

1 #include<iostream>
2 using namespace std;
3 int main()
4 {
5 int m;
6 cin>>m;
7 while(m--)
8 {
9 int n;
10 cin>>n;
11 int count=0;
12 while(n/2!=0)
13 {
14 if(n&1) n--; //位操作,取n的二进制最后一位来判断奇偶性
15 else n>>=1;
16 count++;
17 }
18 cout<<count<<endl;
19 }
20 return 0;
21 }

View Code



编程是一种快乐,享受代码带给我的乐趣!!!


举报

相关推荐

0 条评论