题目链接
题目描述
给定一个长方体的长 a
、宽 b
和高 c
,请计算该长方体的表面积和体积。
输入描述:
在一行中输入三个整数 a
, b
, c
,分别表示长、宽和高。
输出描述: 输出两行:
- 第一行输出一个整数,表示表面积。
- 第二行输出一个整数,表示体积。
解题思路
本题是典型的几何公式计算问题,解题步骤非常直接:
- 读取输入:从标准输入读取三个整数
a
,b
,c
。 - 应用公式计算:
- 表面积 (Surface Area): 长方体有6个面,两两相对的面面积相等。公式为
S = 2 * (a*b + a*c + b*c)
。 - 体积 (Volume): 长方体的体积公式为
V = a * b * c
。
- 表面积 (Surface Area): 长方体有6个面,两两相对的面面积相等。公式为
- 注意数据范围:由于输入的长、宽、高最大可达1000,体积最大可达
1000*1000*1000 = 10^9
,表面积最大可达6 * (1000*1000) = 6 * 10^6
。这些值都在标准32位整型(int
)的范围内,因此使用int
类型是安全的。 - 按格式输出:先输出计算出的表面积,换行后,再输出体积。
代码
#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)
算法及复杂度
- 算法:基础几何公式计算。
- 时间复杂度:
- 仅涉及常数次的算术运算。
- 空间复杂度:
- 仅需常数空间存储变量。