1 solutions

  • 0
    @ 2025-5-14 21:46:15

    每层积木数:第 i 层的积木数为 i2i^2。总积木数:前 N 层的积木数之和为 12+22+32++N21^2 + 2^2 + 3^2 + \dots + N^2。数学公式优化:前 N 个自然数的平方和公式为 N(N+1)(2N+1)6\frac{N(N+1)(2N+1)}{6},可直接利用此公式计算总积木数,避免循环累加。 NN 很小可以直接模拟求和,也可以利用公式。 注意如果 N=100 N = 100 并且 MM 较大时候会超过 intint 类型的范围,需要开长整型

    #include <iostream>
    using namespace std;
    
    int main() {
        int n, m;
        cin >> n >> m;
        long long t = n * (n + 1) * (2 * n + 1) / 6;
        long long sum = t * m;
        cout << sum << endl;
        return 0;
    }
    
    • 1

    Information

    ID
    1478
    Time
    1000ms
    Memory
    256MiB
    Difficulty
    6
    Tags
    (None)
    # Submissions
    172
    Accepted
    49
    Uploaded By