题目链接

最大最小值

题目描述

给定三个整数 a, b, c,请输出它们中的最大值和最小值,并严格按照指定格式输出。

输入描述: 在一行中输入三个用空格隔开的整数 a, b, c

输出描述: 输出两行:

  • 第一行:The maximum number is : X(其中 X 是最大值)
  • 第二行:The minimum number is : Y(其中 Y 是最小值) 注意冒号前后都有空格。

解题思路

本题的核心是找到三个数中的最大值和最小值。

方法一:使用内置函数 大多数编程语言都提供了 maxmin 函数,这是最直接、最简洁的方法。

  • max(a, b, c) 可以直接求出三个数中的最大值。
  • min(a, b, c) 可以直接求出三个数中的最小值。
  • 对于只支持两个参数的 max/min 函数(如C++),可以通过嵌套调用实现:max(a, max(b, c))min(a, min(b, c))

方法二:手动比较 也可以通过一系列的 if 语句手动比较。

  1. 初始化 max_val = a, min_val = a
  2. 比较 bmax_val,如果 b 更大,则更新 max_val = b
  3. 比较 cmax_val,如果 c 更大,则更新 max_val = c
  4. min_val 做类似操作。 这种方法虽然代码稍长,但有助于理解比较的底层逻辑。

最后,严格按照题目要求的格式,包含固定的文本和空格,将结果输出。

代码

#include <iostream>
#include <algorithm> // 需要此头文件以使用 std::max 和 std::min

using namespace std;

int main() {
    int a, b, c;
    cin >> a >> b >> c;
    
    // 嵌套使用 std::max/min 找到三个数中的最值
    int max_val = max(a, max(b, c));
    int min_val = min(a, min(b, c));
    
    // 严格按格式输出
    cout << "The maximum number is : " << max_val << endl;
    cout << "The minimum number is : " << min_val << endl;
    
    return 0;
}
import java.util.Scanner;
import java.lang.Math; // Math 类包含 max 和 min 方法

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        int b = sc.nextInt();
        int c = sc.nextInt();
        
        // 嵌套使用 Math.max/min 找到三个数中的最值
        int maxVal = Math.max(a, Math.max(b, c));
        int minVal = Math.min(a, Math.min(b, c));
        
        // 严格按格式输出
        System.out.println("The maximum number is : " + maxVal);
        System.out.println("The minimum number is : " + minVal);
    }
}
# 读取输入
nums = list(map(int, input().split()))

# Python 的 max/min 函数可以直接作用于列表
max_val = max(nums)
min_val = min(nums)

# 严格按格式输出
print(f"The maximum number is : {max_val}")
print(f"The minimum number is : {min_val}")

算法及复杂度

  • 算法:比较或使用内置函数。
  • 时间复杂度: - 因为比较的数字个数是固定的(3个)。
  • 空间复杂度: - 仅需常数空间存储变量。