题解:P12252 [蓝桥杯 2024 国 Java B] 七边形

· · 题解

解题思路

找规律,发现第 n 个图形比第 n-1 个图形会多

7 \times (n - 1) - ((n - 1) \times 2 - 1)

n 个图形外圈每条边 (n-1) 个小球,上方去掉 (2\times(n-1)-1) 个灰色小球。

循环迭代算出第 20240601 个图形的小球总数即可。

#include<bits/stdc++.h>
using namespace std;
int main() {
    long long cnt = 1;
    int n = 20240601;
    for (int i = 2; i <= n; i++) {
        cnt += (7 * (i - 1)) - ((i - 1) * 2 - 1);
    }
    cout << cnt << endl;
    return 0;
}