NYOJ 46 最少乘法次數 數論

2022-10-11 11:09:12 字數 518 閱讀 9860

思路:能夠化成二進位制來求解。結果是最高位的位數-1+最高位後面1的個數。比如:對於3。它的二進位制**為11,就是用這個最高位(2-1)加上後面的1的個數(1個)。

用最高位1的目的是他能代表了轉化的次數,由於2+2=4,4+4=8 8+8=16........

#include #include #include #include #include #include #include #include #include #include #include using namespace std;

typedef long long ll;

const int inf=0x3f3f3f3f;

const double pi= acos(-1.0);

const double esp=1e-6;

const int maxn=21010;

char str[110];

int main()

str[i]='1';

cnt=0;

for(j=0;j

nyoj 46 最少乘法次數

最少乘法次數 問題描述 給定乙個正整數n,求2 的n次冪,每次相乘的結果,後面也能使用。現求至少需要多少步,能得到2 n.例如2 4,2 2 2 2,2 2 2 2 2 所以,答案為 求解 每次都是乘 我們很容易想到 進製。現在有沒有想到我們中國那句古話,叫做 擒賊先擒王 聯絡到這道題上,我們可以先...

nyoj 46 最少乘法次數 (遞推)

給你乙個非零整數,讓你求這個數的n次方,每次相乘的結果可以在後面使用,求至少需要多少次乘。如24 2 2 22 第一次乘 22 22 24 第二次乘 所以最少共2次 第一行m表示有m 1 m 100 組測試資料 每一組測試資料有一整數n 0輸出每組測試資料所需次數s 複製323 4 122 分析 1...

最少乘法次數 數論

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