酷代码 AI
菜单
全部AI  /  热门  /  AI写代码神器
服务商

c++ 【题目描述】 用手机发短信,一条短信资费为 0.1 元,但限定一条短信的内容在 70 个字以内(包括 70 个字)。如果一次所发送的短信超过了 70 个字,则会按照每 70 个字一条短信的限制把它分割成多条短信发送。假设已经知道某人当月所发送的短信的字数,试统计一下他当月短信的总资费。 【输入】 第一行是整数 n (1≤n≤100 ),表示当月发送短信的总次数,接着 n 行每行一个整数(不超过 1000 ),表示每次短信的字数。 【输出】 输出一行,当月短信总资费,单位为元,精确到小数点后 1 位。 【输入样例】 10 39 49 42 61 44 147 42 72 35 46

```cpp #include <iostream> #include <iomanip> using namespace std; int main() { int n; cin >> n; double totalCost = 0.0; for (int i = 0; i < n; ++i) { int words; cin >> words; // 计算每条短信的资费 int smsCount = (words + 69) / 70; // 向上取整 totalCost += smsCount * 0.1; } // 输出总资费,精确到小数点后1位 cout << fixed << setprecision(1) << totalCost << endl; return 0; } ``` 代码解释: 1. 输入处理:首先读取短信发送次数 `n`,然后循环读取每次发送的短信字数。 2. 计算短信条数:对于每条短信,计算其需要的短信条数。由于每条短信最多70个字,所以使用 `(words + 69) / 70` 来向上取整。 3. 计算总资费:每条短信的资费为0.1元,累加所有短信的资费。 4. 输出结果:使用 `fixed` 和 `setprecision(1)` 来确保输出精确到小数点后1位。 额外注意的逻辑点: 1. 向上取整的计算:使用 `(words + 69) / 70` 来确保超过70字的部分也能正确计算为一条短信。 2. 浮点数精度:在计算总资费时,使用 `double` 类型来避免精度丢失。 3. 输出格式:使用 `fixed` 和 `setprecision(1)` 来确保输出格式符合要求。 [2025-03-06 21:13:35 | AI写代码神器 | 380点数解答]

相关提问