龙空技术网

Python第138题:三个数的最大和最小乘积【PythonTip题库300】

fangel 107

前言:

眼前我们对“python比较三个数大小并输出最大值和最小值”都比较讲究,看官们都需要剖析一些“python比较三个数大小并输出最大值和最小值”的相关文章。那么小编也在网络上搜集了一些关于“python比较三个数大小并输出最大值和最小值””的相关文章,希望看官们能喜欢,大家快快来学习一下吧!

1、编程试题:

编写一个程序,计算一个列表中三个数字的最大和最小乘积。

定义函数max_product_of_three(),该函数接受一个数字列表numbers作为其参数。

在函数内部,计算并返回列表中任意三个数字的最大乘积。

定义第二个函数min_product_of_three(),该函数也接受一个数字列表numbers作为其参数。

在这个函数内部,计算并返回列表中任意三个数字的最小乘积。

示例输入:

-8 -9 1 2 7

示例输出:

504

-126

解释:

最大乘积是 504 (-9,-8 和 7 的乘积)。而最小乘积是 -126 (-9,7 和 2 的乘积)。

2、代码实现:

可编辑代码如下:

#!/usr/bin/python3.9# -*- coding: utf-8 -*-## Copyright (C) 2024 , Inc. All Rights Reserved## @Time      : 2024/3/5 21:24# @Author    : fangel# @FileName  : 138. 三个数的最大和最小乘积.py# @Software  : PyCharmfrom itertools import combinationsdef max_product_of_three(numbers):    tupleList = list(combinations(numbers, 3))    max_product = tupleList[0][0] * tupleList[0][1] * tupleList[0][2]    for num in tupleList:        if num[0] * num[1] * num[2] > max_product:            max_product = num[0] * num[1] * num[2]    return max_productdef min_product_of_three(numbers):    tupleList = list(combinations(numbers, 3))    min_product = tupleList[0][0] * tupleList[0][1] * tupleList[0][2]    for num in tupleList:        if num[0] * num[1] * num[2] < min_product:            min_product = num[0] * num[1] * num[2]    return min_product# 获取用户输入numbers = list(map(int, input().split()))# 调用函数print(max_product_of_three(numbers))print(min_product_of_three(numbers))

3、代码分析:

本例可以采用三层循环遍历所有三位数的组合,计算并更新最大乘积和最小乘积。

也可以用itertools迭代器,其中的combinations(p,r)是长度为r的元组,有序无重复元组,本例r=3

4、运行结果:

输入:

-9 -10 11 12 1 2

输出:

1080

-1320

标签: #python比较三个数大小并输出最大值和最小值