HM104 立方体比较
HM104 立方体比较
来源: 第 104 集 类和对象-封装-设计案例1-立方体类
难度: 入门
时间限制: 1s
空间限制: 64MB
题目描述
设计立方体类 Cube。长、宽、高三个属性设为私有,对外提供公共的 set / get 接口。再提供两个行为:
- 面积:\(2 \times (长 \times 宽 + 宽 \times 高 + 长 \times 高)\)
- 体积:\(长 \times 宽 \times 高\)
例如长宽高都是 \(10\) 时,面积 \(600\),体积 \(1000\)。
还要判断两个立方体是否相等:长、宽、高分别相等才算相等。必须分别用两种函数完成,且两种判断结果必须一致:
- 全局函数
isSame:传入两个立方体,用引用传递,避免值传递再拷贝一份。 - 成员函数
isSameByClass:用一个已知对象调用,再传入另一个立方体,因此只需要一个参数。类内可以直接读自身的私有长宽高。
读入 \(n\) 个立方体,再处理 \(q\) 次询问。
输入格式
第一行一个整数 \(n\)(\(1 \le n \le 100\))。
接下来 \(n\) 行,每行三个整数 \(L,W,H\)(\(1 \le L,W,H \le 1000\)),用 set 接口写入第 \(i\) 个立方体(编号从 \(1\) 开始)。
下一行一个整数 \(q\)(\(1 \le q \le 1000\))。
接下来 \(q\) 行,每行一种询问:
1 i:输出第 \(i\) 个立方体的面积2 i:输出第 \(i\) 个立方体的体积3 i j:用全局函数判断第 \(i\) 个与第 \(j\) 个是否相等,相等输出YES,否则NO4 i j:用成员函数判断第 \(i\) 个与第 \(j\) 个是否相等,相等输出YES,否则NO
输出格式
每个询问一行,行末换行。
样例
输入 #1
2
10 10 10
10 10 10
4
1 1
2 1
3 1 2
4 1 2
输出 #1
600
1000
YES
YES
输入 #2
2
10 10 10
10 10 11
2
3 1 2
4 1 2
输出 #2
NO
NO
说明
- 属性必须私有,类外通过
set/get访问。 - 全局函数要传两个对象;成员函数用自身对比传入的那个,只传一个。
- 两种判断对同一对立方体的结果必须相同。
- 引用传参避免把立方体再拷贝一份。
信息
- ID
- 1103
- 难度
- (无)
- 分类
- (无)
- 标签
- (无)
- 递交数
- 0
- 已通过
- 0
- 通过率
- ?
- 上传者