用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
热门推荐
10 儿子立冬祝福语简短独特
11 对当兵的祝福语简短
12 侄儿高考试祝福语简短
13 伴郎红包祝福语朋友简短
14 媳妇生日简短祝福语朋友
15 公司年会祝福语简短最好
16 元旦感恩祝福语简短大全
17 红包祝福语简短10字
18 周六早晨祝福语简短