時間限制: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 ...