最小乘法次數

2021-08-18 02:17:48 字數 788 閱讀 3727

時間限制: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自己寫的,貪心,,,

#include 

#define n 25

int main()

else

else

}n-=num[i-1];

for(int j=i-1;j>0;j--)

}

}printf("%d\n",ans);

}return

0;}

看了網上的解題方法,類似於快速冪,挺棒的,應該去了解一下快速冪

#include 

#include

#include

using

namespace

std;

int main()

int s = cnt - 1;

for(int i = cnt - 2;i >= 0;i--)

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

} return

0;

}

最小乘法次數

題目描述 給你乙個非零整數,讓你求這個數的n次方,每次相乘的結果可以在後面使用,求至少需要多少次乘。如24 2 2 22 第一次乘 22 22 24 第二次乘 所以最少共2次。211 2 2 22 第一次乘 22 22 24 第二次乘 24 24 28 第三次乘 28 22 210 第四次乘 210...

NYOJ 46最小乘法次數

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

最小乘法 DP

如果在乙個正整數中間插入一些乘號,會得到乙個更小的數字。乙個數字有不同的插入方法,會得到不同的數字,我們想知道最大的那個數字是多少?例如 233 得到 69,1111 得到 121 拿到題目會發現這道題和矩陣鏈相乘非常相似,以至於我上來就按照矩陣鏈乘法那樣設定狀態 啊啊啊思維定式了 即dp i j ...