Python实现小数四舍五入与上下取整比较计数
好的,我们一步一步来解决这个问题。 这个问题要求我们:对于输入的 `n` 个小数,分别进行四舍五入,然后统计: 1. 四舍五入结果 == 向上取整结果 的个数 2. 四舍五入结果 == 向下取整结果 的个数 ## 🔍 关键逻辑分析 - **四舍五入**:`round(x)`(注意 Python 中 round 对 .5 有银行家舍入,但本问题假设最简的数学四舍五入,我们可以用 `int(x + 0.5)`) - **向上取整**:`math.ceil(x)` - **向下取整**:`math.floor(x)` 如果一个数四舍五入的结果等于它的向上取整结果,说明这个数的小数部分 >= 0.5,四舍五入后进位了。 若等于向下取整结果,说明小数部分 < 0.5,四舍五入被截断了。 ## 💻 代码实现 ```python import math def main(): # 输入 n 和小数列表 n = int(input()) nums = list(map(float, input().split())) equal_ceil = 0 equal_floor = 0 for x in nums: # 计算四舍五入(数学方式) rounded = int(x + 0.5) ceil_val = math.ceil(x) floor_val = math.floor(x) if rounded == ceil_val: equal_ceil += 1 if rounded == floor_val: equal_floor += 1 # 输出结果 print(equal_ceil, equal_floor) if __name__ == "__main__": main() ``` ### 🧪 示例执行 **输入:** ``` 5 1.2 2.5 3.7 4.0 5.9 ``` **逐数分析**: - 1.2 → round=1, ceil=2, floor=1 → floor相等 - 2.5 → round=3, ceil=3, floor=2 → ceil相等 - 3.7 → round=4, ceil=4, floor=3 → ceil相等 - 4.0 → round=4, ceil=4, floor=4 → 都相等(计两次) - 5.9 → round=6, ceil=6, floor=5 → ceil相等 **输出**: ``` 4 2 ``` ######[AI问答 | 559点数解答 | 2026-07-17 20:08:01]
- Java 实现:从点类到圆类,计算圆心坐标(50,30)、半径 4 的圆周长与面积(字节豆包 | 246点数解答 | 2024-11-11 16:36:30)404
- Python 运行报错:urllib3 网络连接创建失败,原因及排查建议(字节豆包 | 161点数解答 | 2024-10-31 00:39:36)588
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)524
- Python 实战:学生信息列表转字典、遍历、深拷贝及数据修改全流程(GPT | 422点数解答 | 2024-10-29 15:43:54)533
- Python实战:学生成绩列表转字典,深拷贝与数据修改操作全解析(字节豆包 | 254点数解答 | 2024-10-29 16:01:39)526
- Python:轻松提取10.0到99.0小数的整数部分(字节豆包 | 136点数解答 | 2026-01-11 19:23:18)85
- Java调用Python接口中文乱码?设置UTF - 8编码一招解决!(讯飞星火 | 263点数解答 | 2024-06-06 17:07:59)478
- 解决Java调用Python接口中文乱码问题:设置UTF - 8编码全攻略(讯飞星火 | 160点数解答 | 2024-06-06 17:18:39)513
- Java调用Python接口中文乱码问题:字符编码统一解决方案(讯飞星火 | 344点数解答 | 2024-06-06 17:19:55)609
- 解决Java调用Python接口时中文值乱码问题:设置字符编码为UTF-8(讯飞星火 | 264点数解答 | 2024-06-06 17:27:09)478
- 帮胖虎小夫70周年友谊派对分派,精准计算两种输出方案!(阿里通义 | 672点数解答 | 2024-10-20 21:46:18)226
- C++ 助力胖虎小夫 70 周年派对派分难题!精准输出派的分配大小(阿里通义 | 523点数解答 | 2024-10-20 21:46:33)193