【南陽理工】 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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章