首页 > 其他分享 >动态规划_整数拆分

动态规划_整数拆分

时间:2022-12-04 11:45:21浏览次数:47  
标签:End Sub 示例 integerBreak 整数 Next 拆分 动态 dp

'给定一个正整数 n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化。 返回你可以获得的最大乘积。
'示例 1:
'输入: 2
'输出: 1
'解释: 2 = 1 + 1, 1 × 1 = 1。
'示例 2:
'
'输入: 10
'输出: 36
'解释: 10 = 3 + 3 + 4, 3 × 3 × 4 = 36。
Sub main()
    Debug.Print (integerBreak(13))
End Sub
Public Function integerBreak(n)
    Dim dp()
    ReDim dp(n + 1)
    dp(2) = 1
    For i = 3 To n
        For j = 1 To i - j
            dp(i) = Application.WorksheetFunction.Max(dp(i), Application.WorksheetFunction.Max(j * (i - j), j * dp(i - j)))
        Next
    Next
    integerBreak = dp(n)
End Function

 

标签:End,Sub,示例,integerBreak,整数,Next,拆分,动态,dp
From: https://www.cnblogs.com/eyunkeji/p/16949575.html

相关文章