K12教育赛事综合服务平台
聚乐之家官方网站
下载聚乐之家官方App
专注青少年竞赛题库网站
现有需求为计算1到n(n最大可取10^9)范围内所有偶数的总和,要求算法效率尽可能高,避免出现超时、内存溢出等问题。
遍历1到n的所有整数,判断每个数是否为偶数,符合条件则累加入结果,时间复杂度O(n)
推导得到偶数和等价于 $\lfloor n/2 \rfloor * (\lfloor n/2 \rfloor + 1)$,直接代入公式计算,时间复杂度O(1)
预先存储1到10^9所有偶数的求和结果,查询时直接返回对应值,时间复杂度O(1)
用递归实现:若n是偶数则返回n + sum(n-1),否则返回sum(n-1),边界为sum(0)=0,时间复杂度O(n)