week1-[顺序结构]大海
题目描述
海水的含盐度大概是 3.5%3.5\%3.5%,也就是说 100100100 毫升的海水里有 3.53.53.5 克盐。将 aaa 杯海水和 bbb 杯纯净水(每杯都是 100100100 毫升)倒在一起后,得到的混合物盐度是百分之多少?答案四舍五入保留 111 位小数。
输入格式
输入共 111 行 222 个整数 a,ba,ba,b。
输出格式
输出共 111 行形如 k%
表示答案,其中 kkk 是一个浮点数。
样例 #1
样例输入 #1
2 1
样例输出 #1
2.3%
样例 #2
样例输入 #2
1 0
样例输出 #2
3.5%
提示
样例解释 111
总共有 777 克盐与 300300300 毫升水,7÷300≈2.3%7\div 300\approx 2.3\%7÷300≈2.3%。
数据范围
对于所有数据,0≤a,b≤1000\leq a,b\leq 1000≤a,b≤100,a+b≠0a+b\neq 0a+b=0。
week1-[顺序结构]大海 题解
1. 阅读题目
已知:
- 100 毫升海水含盐 3.5 克。
- 每杯水是 100 毫升。
- aaa 杯海水、bbb 杯纯净水混合后,求最终的盐度百分比,保留 1 位小数并输出
%
符号。
2. 分析问题
-
海水盐量:a×3.5a \times 3.5a×3.5 克
-
总水量:(a+b)×100(a + b) \times 100(a+b)×100 毫升
-
盐度:
盐度(%)=盐量总水量×100\text{盐度}(%) = \frac{\text{盐量}}{\text{总水量}} \times 100盐度(%)=总水量盐量×100
-
四舍五入保留 1 位小数。
3. 解决方案
- 读入 a,ba, ba,b
- 计算盐量:
salt = a * 3.5
- 计算总水量:
total = (a + b) * 100
- 计算盐度百分比:
percent = salt / total * 100
- 使用
setprecision(1)
控制保留 1 位小数 - 输出结果时加上
%
4. C++ 代码实现
c++
#include <iostream>
#include <iomanip> // 控制小数输出
using namespace std;
int main() {
int a, b;
cin >> a >> b;
double salt = a * 3.5; // 盐克数
double total = (a + b) * 100.0; // 总毫升数
double percent = salt / total * 100.0; // 盐度百分比
cout << fixed << setprecision(1) << percent << "%" << endl;
return 0;
}
✅ 没有使用 auto
、初始化列表、范围 for 等低版本 C++ 不支持的特性。
5. 数据测试
样例 1
输入
2 1
输出
2.3%
样例 2
输入
1 0
过程
输出
3.5%
6. 时间复杂度与空间复杂度
- 时间复杂度:O(1)
- 空间复杂度:O(1)
7. 优化方案
- 本题数据规模极小,直接按公式计算即可。
N464WFqP-1755137872220)]
输出
3.5%
6. 时间复杂度与空间复杂度
- 时间复杂度:O(1)
- 空间复杂度:O(1)
7. 优化方案
- 本题数据规模极小,直接按公式计算即可。
- 若扩展到需要大量相似计算的情境,可以预先存储海水盐量的换算比例,减少重复计算(但此题无意义)。