【南阳理工】 46 最少乘法次数

描述

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

输入

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

每一组测试数据有一整数n(0<n<=10000);

输出

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

样例输入

3

2

3

4

样例输出

1

2

2

上传者

李剑锋

AC代码:

 
#include<cstdio>
int main()
{
	int t,n;
	scanf("%d",&t);
	while(t--)
	{
		scanf("%d",&n);
		int ans=0;
		while(n!=1)
		{
			ans++;
			if(n%2==1)
			{
				ans++;
			}
			n/=2;
		}
		printf("%d\n",ans);
	}
	return 0;
 }         




发布了52 篇原创文章 · 获赞 0 · 访问量 8951
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章