好的,我们可以使用C++来解决这个问题。我们需要计算每个人分到的派的大小,并分别以四舍五入和不四舍五入的方式输出结果。以下是实现代码: ```cpp #include <iostream> #include <iomanip> #include <cmath> int main() { long long valpai, m; std::cin >> valpai >> m; // 计算每个人分到的派的大小 double pai_per_person = static_cast<double>(valpai) / m; // 四舍五入保留3位小数 std::cout << std::fixed << std::setprecision(3) << pai_per_person << std::endl; // 不四舍五入保留3位小数 std::cout << std::fixed << std::setprecision(3) << floor(pai_per_person * 1000) / 1000.0 << std::endl; return 0; } ``` 代码解释: 1. 输入读取: - 使用 `std::cin` 读取派的总大小 `valpai` 和来宾的人数 `m`。 2. 计算每个人分到的派的大小: - 将 `valpai` 转换为 `double` 类型,然后除以 `m`,得到每个人分到的派的大小 `pai_per_person`。 3. 四舍五入保留3位小数: - 使用 `std::fixed` 和 `std::setprecision(3)` 来设置输出格式,保留3位小数并四舍五入。 - 输出结果。 4. 不四舍五入保留3位小数: - 将 `pai_per_person` 乘以 1000,然后使用 `floor` 函数取整,再除以 1000.0,这样可以确保不进行四舍五入。 - 输出结果。 示例输入输出: 假设输入为: ``` 100 5 ``` 输出将会是: ``` 20.000 20.000 ``` 如果输入为: ``` 101 5 ``` 输出将会是: ``` 20.200 20.200 ``` 这个程序能够正确处理大范围的输入值,并且按照要求输出结果。希望这能帮到你! [2024-10-20 21:46:33 | AI写代码神器 | 523点数解答]