最少乘法次數 數論

2021-07-04 07:36:40 字數 779 閱讀 6412

時間限制:

1000 ms  |  記憶體限制:

65535 kb

難度:3 描述

給你乙個非零整數,讓你求這個數的n次方,每次相乘的結果可以在後面使用,求至少需要多少次乘。如24:2*2=22(第一次乘),22*22=24(第二次乘),所以最少共2次;

輸入

第一行m表示有m(1<=m<=100)組測試資料;

每一組測試資料有一整數n(0輸出

輸出每組測試資料所需次數s;

樣例輸入

3

2

3

4

樣例輸出

1

2

2

當出現奇數的時候他是有偶數乘以乙個數得到的,所以判斷一下就可以了

/*

author: 2486

memory: 232 kb time: 0 ms

language: g++ result: accepted

*/#include #include #include using namespace std;

int n,m;

int main()

printf("%d\n",cnt);

}return 0;

}

NYOJ 46 最少乘法次數 數論

思路 能夠化成二進位制來求解。結果是最高位的位數 1 最高位後面1的個數。比如 對於3。它的二進位制 為11,就是用這個最高位 2 1 加上後面的1的個數 1個 用最高位1的目的是他能代表了轉化的次數,由於2 2 4,4 4 8 8 8 16.include include include incl...

最少乘法次數

時間限制 1000 ms 記憶體限制 65535 kb 難度 3 描述給你乙個非零整數,讓你求這個數的n次方,每次相乘的結果可以在後面使用,求至少需要多少次乘。如24 2 2 22 第一次乘 22 22 24 第二次乘 所以最少共2次 輸入第一行m表示有m 1 m 100 組測試資料 每一組測試資料...

最少乘法次數擴充套件

給你乙個非零整數,運算規則如下 經過一次計算後可將得到的次冪任意相乘.舉例如下 1.假設底數為2,則未計算前2的冪次只有1.初始化 2.2 2 4.經過一次計算後,2的冪次共有1 2.這稱為第一次運算 3.經過2 2 4 2 4 8 4 4 16 經過第二次計算後,2的冪次共有1 2 3 4.這稱為...