O(1)做法:
查看原帖
O(1)做法:
1432277
limoxuan0712楼主2025/1/14 11:44

1+(1+2)+(1+2+3)+......+(1+2+3+......+n) =(1+1)×1/2+(1+2)×2/2+(1+3)×3/2+......+(1+n)×n/2 =1/2×(2×1+3×2+4×3+5×4+......+(1+n)×n) =1/2×(2×4+4×8+6×12+8×16+......+n×2n) =2×2+4×4+6×6+8×8+......+n×n =4×(1×1+2×2+3×3+4×4+......(n/2)(n/2)) =4(n/2(n/2+1)(n+1))/6 =2n(n/2+1)(n+1)/6 =n(n+1)(n+2)/6


所以,原式=n(n+1)(n+2)/6


注:

  1. 1×1+2×2+3×3+......+n×n=n(n+1)(2n+1)/6
  2. 2n×2n比n×n大4倍

AC code:

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n;
	cin>>n;
	cout<<n*(n+1)*(n+2)/6<<endl;
	return 0;
}
2025/1/14 11:44
加载中...