剪繩子 演算法 C 學習之路之剪繩子問題

2021-10-14 16:00:45 字數 615 閱讀 4651

基於c++實現剪繩子問題,既將一根長度為n的繩子,剪成m段,使m段的乘積最大。如,長度為10的繩子,最大乘積為36。使用動態規劃和貪心演算法實現,具體**如下:

#include "stdio.h"

#include "stdlib.h"

#include using namespace std;

//******************--動態規劃問題---剪繩子問題--*********************

int maxproductaftercutting_solution(int num)

product[i] = max;

} max = product[num];

return max;

}//******************-貪心演算法---剪繩子問題--*********************

int maxproductaftercutting_solution2(int num)

int main()

執行結果如下:

剪繩子 演算法 424,劍指 Offer 剪繩子

給你一根長度為 n 的繩子,請把繩子剪成整數長度的 m 段 m n都是整數,n 1並且m 1 每段繩子的長度記為 k 0 k 1 k m 1 請問 k 0 k 1 k m 1 可能的最大乘積是多少?例如,當繩子的長度是8時,我們把它剪成長度分別為2 3 3的三段,此時得到的最大乘積是18。示例 1 ...

演算法題 剪繩子

題目描述 給你一根長度為n的繩子,請把繩子剪成整數長的m段 m n都是整數,n 1並且m 1 每段繩子的長度記為k 0 k 1 k m 請問k 0 xk 1 x xk m 可能的最大乘積是多少?例如,當繩子的長度是8時,我們把它剪成長度分別為2 3 3的三段,此時得到的最大乘積是18。輸入描述 輸入...

C 題解 剪繩子

有n nn根繩子,第i ii根繩子長度為l il i li 現在需要m根等長的繩子,你可以對n nn根繩子進行任意裁剪 不能拼接 請你幫忙計算出這m mm根繩子最長的長度是多少。輸入格式 第一行包含2個正整數n m n mn m,表示原始繩子的數量和需求繩子的數量。第二行包含n nn個整數,其中第 ...