- lizexuan's blog
1+3+5+...+n简便算法
- @ 2023-7-6 12:23:53
先看
| 输入 | 输出 |
|---|---|
| 1 | 1 |
| 2 | |
| 3 | 4 |
| 4 | |
| 5 | 9 |
| 6 |
跟据上表可得:每次输出都应为完全平方数,我们仔细观察每个完全平方数,它恰恰等于因此可以得出以下公式
因此可以写出以下代码
pow((n + 1) / 2, 2)
完整代码
#define int64(n) ((long long)(n))
long long n;
cin >> n;
cout << int64(pow(((n + 1) / 2), 2)) << endl;
完整代码
//Code written by Li Zexuan (Looks handsome)
#include <bits/stdc++.h>
using namespace std;
#define int64(n) ((long long)(n))
int main() {
long long n;
cin >> n;
cout << int64(pow(((n + 1) / 2), 2)) << endl;
return 0;
}

正好洛谷开着就直接用洛谷了