用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
热门推荐
1 训练狗狗憋尿
2 狗狗追踪训练
3 狗狗训练要多少钱
5 深圳狗狗训练
6 训练狗狗唤回
7 狗狗叫怎么训练
8 狗狗训练班
10 狗狗社会化训练
11 狗狗叫回训练
12 广州狗狗训练学校
13 狗狗训练躺下
14 狗狗随行训练
15 训练狗狗巡回
16 狗狗要怎么训练
17 狗狗喂食训练
18 训练狗狗躺下