python计算邮资
时间: 2023-11-05 22:04:34 浏览: 68
python计算邮资的方法如下:
1. 首先,定义一个函数来计算最大的不可支付邮资。函数的参数是邮票的面值列表和一个目标邮资。
2. 在函数内部,使用动态规划的方法来计算最大不可支付邮资。创建一个长度为目标邮资加1的列表dp,初始值都设为False。将dp设为True,表示目标邮资为0时是可支付的。
3. 使用两层循环来更新dp列表。外层循环遍历邮票的面值列表,内层循环遍历可能的目标邮资。如果dp[j]为True,表示目标邮资j是可支付的,那么对于每个面值v,都将dp[j+v]设为True。
4. 最后,从目标邮资开始倒序遍历dp列表,找到第一个为False的值,即为最大的不可支付邮资。
下面是python代码实现:
```python
def compute_max_unpayable_postage(values, target):
dp = [False] * (target + 1)
dp[0] = True
for v in values:
for j in range(target, v - 1, -1):
if dp[j - v]:
dp[j] = True
for j in range(target, -1, -1):
if not dp[j]:
return j
values = [6, 7, 8]
target = 17
max_unpayable_postage = compute_max_unpayable_postage(values, target)
print("最大的不可支付邮资是", max_unpayable_postage, "角。")
```
相关推荐
![py](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![whl](https://img-home.csdnimg.cn/images/20210720083646.png)