对于n的多少值,g(47,n)会返回5?



我是Python新手。当我在做练习的时候,我偶然发现了那个问题。首先,我如何解决这个问题。第二,res=0和res=res+1的作用是什么?

对于n的多少,g(47,n)会返回5?

def g(m, n):
res=0
while m>=n:
res=res+1
m=m-n
return res

从数学上讲,这些整数应该落在m/6 < n <= m/5区间内,这使得只有89可以作为可行的n值。

要验证结果,可以尝试

>>> g(47,7)  
6
>>> g(47,8)  
5
>>> g(47,9)    
5
>>> g(47,10)   
4

如果你不介意检查所有可能的值,你可以试试

[[n, g(47,n)] for n in range(1,47)]

,

>>> [[n, g(47,n)] for n in range(1,47)]
[[1, 47], [2, 23], [3, 15], [4, 11], [5, 9], [6, 7], [7, 6], [8, 5], [9, 5], [10, 4], [11, 4], [12, 3], [13, 3], [14, 3], [15, 3], [16, 2], [17, 2], [18, 2], [19, 2], [20, 2], [21, 2], [22, 2], [23, 2], [24, 1], [25, 1], [26, 1], [27, 1], [28, 1], [29, 1], [30, 1], [31, 1], [32, 1], [33, 1], [34, 1], [35, 1], [36, 1], [37, 1], [38, 1], [39, 1], [40, 1], [41, 1], [42, 1], [43, 1], [44, 1], [45, 1], [46, 1]]

最新更新