开关灯问题揭秘:巧用数学解 1e9 规模难题
这个问题是经典的“开关灯”问题。每个灯作的次数等于其编号的因数个数。 灯最终状态由操作次数的奇偶性决定:奇数次操作灯亮,偶数次操作灯灭。 一个数有奇数个因数当且仅当它是完全平方数。 亮灯的编号就是所有不超过 n 的完全平方数。 它们的和就是: \[ \sum_{k=1}^{\lfloor \sqrt{n} \rfloor} k^2 \] 代码实现: ```python n = int(input()) k = int(n 0.5) ans = sum(i * i for i in range(1, k + 1)) print(ans) ``` 我在以往的开发过程中,碰到过以下几点需要格外小心处理的地方: 1. 当 n 很大时(最大 1e9),直接遍历 1 到 n 会超时,必须用数学方法。 2. 计算平方根取整时,注意浮点数精度问题,可以用 int(n 0.5) 或 math.isqrt(n)(Python 3.8+)。 3. 求和时使用公式或循环,注意数据范围,Python 整数不会溢出,但其他语言可能需要使用 long long 类型。 ######[AI写代码神器 | 271点数解答 | 2026-01-18 12:41:43]
相关提问
- C++ 代码:巧妙计算 n×n 矩阵行、列、对角线平行直线元素和最大值(字节豆包 | 1151点数解答 | 2025-11-26 20:07:49)38
- 班级分组难题:如何算出最大管理方便度之和?(字节豆包 | 176点数解答 | 2025-12-13 11:17:22)22
- Java实现Student类:计算三门课程总分、平均分、最高分与最低分( | 2332点数解答 | 2024-03-12 10:23:27)260
- Python代码实现创建并写入成绩信息到 scores.txt 文件( | 342点数解答 | 2024-04-21 15:53:03)349
- Python实现:输入学生数量计算各科成绩平均分、标准差与中位数(讯飞星火 | 715点数解答 | 2024-05-08 11:20:09)333
- 上海海洋大学yqhyzy:Python实现学生各科成绩统计值计算,含随机生成与精准输出! ( | 1398点数解答 | 2024-05-08 11:21:34)334
- 上海海洋大学yqhyzy:输入学生数算语数外成绩平均分、标准差与中位数( | 699点数解答 | 2024-05-08 11:24:39)321
- 上海海洋大学yqhyzy:Python实现n个学生各科成绩生成与统计值计算(百度文心 | 683点数解答 | 2024-05-08 11:25:45)289
- Python实现:依据标准判定中学学生附加科目测试等级并写入文件(讯飞星火 | 573点数解答 | 2024-06-22 23:14:14)338
- Python 实现:从键盘输入课程考分,精准输出最高分课程与分数!(讯飞星火 | 146点数解答 | 2024-06-23 23:29:29)502
- Python 实现:键盘输入课程考分信息,计算并输出高低分课程及平均分(百度文心 | 444点数解答 | 2024-06-28 15:44:52)518
- 超简易!C# 搭建教学管理系统,涵盖课程与学生管理(字节豆包 | 419点数解答 | 2024-10-24 17:49:32)262