用Python找出吃N个橙子的最少天数的程序
假设我们有一个数字 n。所以考虑厨房里有 n 个橙子,我们每天都吃一些橙子,遵循以下规则: 1. 吃一个橙子。2. 如果 n 是偶数,则吃 n/2 个橙子。3.如果n能被3整除可以吃2*(n/3)个橙子。我们每天只能选择一个选项。我们必须找到吃 n 个橙子的最少天数。
因此,如果输入类似于 n = 10,那么输出将为 4,因为
第 1 天吃 1 个橙子,10 - 1 = 9。
第 2 天吃 6 个橙子,9 - 2*(9/3) = 9 - 6 = 3。
第 3 天吃 2 个橙子,3 - 2*(3/3) = 3 - 2 = 1。
在第 4 天吃最后一个橙子 1 - 1 = 0。
示例
让我们看下面的实现来更好地理解
def solve(n):def fun(n):
if n in memo:
return memo[n]
if n<=2:
return n
memo[n]=1+min(n%2+fun(n//2),n%3+fun(n//3))
return memo[n]
memo={}
return fun(n)
n = 12
print(solve(n))
输入
7, [5,1,4,3]输出结果
4
以上是 用Python找出吃N个橙子的最少天数的程序 的全部内容, 来源链接: utcz.com/z/335474.html