题目链接

牛牛学立体

题目描述

给定一个长方体的长 a、宽 b 和高 c,请计算该长方体的表面积和体积。

输入描述: 在一行中输入三个整数 a, b, c,分别表示长、宽和高。

输出描述: 输出两行:

  • 第一行输出一个整数,表示表面积。
  • 第二行输出一个整数,表示体积。

解题思路

本题是典型的几何公式计算问题,解题步骤非常直接:

  1. 读取输入:从标准输入读取三个整数 a, b, c
  2. 应用公式计算
    • 表面积 (Surface Area): 长方体有6个面,两两相对的面面积相等。公式为 S = 2 * (a*b + a*c + b*c)
    • 体积 (Volume): 长方体的体积公式为 V = a * b * c
  3. 注意数据范围:由于输入的长、宽、高最大可达1000,体积最大可达 1000*1000*1000 = 10^9,表面积最大可达 6 * (1000*1000) = 6 * 10^6。这些值都在标准32位整型(int)的范围内,因此使用 int 类型是安全的。
  4. 按格式输出:先输出计算出的表面积,换行后,再输出体积。

代码

#include <iostream>

using namespace std;

int main() {
    int a, b, c;
    // 读取长、宽、高
    cin >> a >> b >> c;
    
    // 计算表面积和体积
    int surface_area = 2 * (a * b + a * c + b * c);
    int volume = a * b * c;
    
    // 按格式输出
    cout << surface_area << endl;
    cout << volume << endl;
    
    return 0;
}
import java.util.Scanner;

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();
        
        // 计算表面积和体积
        int surfaceArea = 2 * (a * b + a * c + b * c);
        int volume = a * b * c;
        
        // 按格式输出
        System.out.println(surfaceArea);
        System.out.println(volume);
    }
}
# 读取长、宽、高
a, b, c = map(int, input().split())

# 计算表面积和体积
surface_area = 2 * (a * b + a * c + b * c)
volume = a * b * c

# 按格式输出
print(surface_area)
print(volume)

算法及复杂度

  • 算法:基础几何公式计算。
  • 时间复杂度: - 仅涉及常数次的算术运算。
  • 空间复杂度: - 仅需常数空间存储变量。