【例题】

自然数之和

题目描述

给定一个正整数n,计算前 n 个自然数的和。

输入

一行,一个正整数 n(1<n≤10910^9

输出

一行一个整数,表示前 n 个自然数的和。

【AC 60% TLE】

直接暴力用1个循环求,遍历1~n求和

【AC 100%】

ai=自然数iai = 自然数i

A1A1 a1a1 a2a2 ...... an1an - 1 anan

反着看

A2A2 anan an1an - 1 ...... a2a2 a1a1

相加

A1i+A2iA1i + A2i

发现A1i+A2iA1i + A2i都 = 固定数值XX = MAX(A1)+1MAX(A1) + 1

继续相加,把所有A1i+A2iA1i + A2i都相加,和为SS

发现SS = A1SA1S(A1的和A1的和)2*2

S/2=A1SS / 2 = A1S

S=(A11+A21)n S= (A11 + A21) * n

A11=a1(1)A11 = a1(1)

A21=an(n)A21 = an(n)

公式

A11+A21n/2=A1SA1的和)(A11 + A21)* n / 2 = A1S(A1的和)

n=A1的项数n = A1的项数

本题公式:(1+n)n/2(1 + n)*n/2

后记

本分享均为个人经验,仅供参考,有问题可以在评论区反馈,不喜勿喷

Update

【2025/11/5/19:56】 初稿完成

【2025/11/5/19:58】 增加公式结果 + Markdown优化(CommonMark + Katex)

【2025/11/5/20:03】 增加本题公式 + Markdown优化(CommonMark + Katex)

2 条评论

  • 1