-
Notifications
You must be signed in to change notification settings - Fork 0
/
三个数的最大和最小乘积.py
62 lines (47 loc) · 1.88 KB
/
三个数的最大和最小乘积.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
'''
Coding: UTF-8
Version:python 3.0
Author: mangosago
Time: 2024/4/26
Email:[email protected]
'''
# 编写一个程序,计算一个列表中三个数字的最大和最小乘积。
#
# 定义函数max_product_of_three(),该函数接受一个数字列表numbers作为其参数。
# 在函数内部,计算并返回列表中任意三个数字的最大乘积。
# 定义第二个函数min_product_of_three(),该函数也接受一个数字列表numbers作为其参数。
# 在这个函数内部,计算并返回列表中任意三个数字的最小乘积。
#
# 示例输入
# -8 -9 1 2 7
# 示例输出
# 504
# 导入随机模块与乘积模块
from itertools import combinations
from functools import reduce
# 定义一个列表元素乘积方法
def product(x,y):
return x*y
# 定义一个任意三个元素的乘积列表方法
def product_list(numbers):
# 定义一个空列表用于存放输入列表随机排列的三种元素所有情况的乘积
max_list = []
# 使用 itertools 模块中 combinations 方法将输入的列表随机排列的三种情况存放在一个变量中
all_combinations = list(combinations(numbers, 3))
# 遍历随机排列的任意三个数字列表
for combination in all_combinations:
# 使用 functools 模块的 reduce 方法计算出当前遍历的三个数字乘积并添加值乘积列表中
max_list.append(reduce(product, combination))
# 输出遍历完成后的乘积列表
return max_list
def max_product_of_three(numbers):
# 使用 max 函数找出乘积列表的最大值
return max(product_list(numbers))
def min_product_of_three(numbers):
# 使用 min 函数找出乘积列表的最小值
return min(product_list(numbers))
# 获取用户输入
numbers = list(map(int, input().split()))
# 调用函数
print(max_product_of_three(numbers))
print(min_product_of_three(numbers))