Sum square difference
The sum of the squares of the first ten natural numbers is,
[1^2 + 2^2 + cdots + 10^2 = 385
]
The square of the sum of the first ten natural numbers is,
[(1 + 2 + cdots + 10)^2 = 55^2 = 3025
]
Hence the difference between the sum of the squares of the first ten natural numbers and the square of the sum is 3025 − 385 = 2640.
Find the difference between the sum of the squares of the first one hundred natural numbers and the square of the sum.
平方的和与和的平方之差
前十个自然数的平方的和是
[1^2 + 2^2 + cdots + 10^2 = 385
]
前十个自然数的和的平方是
[(1 + 2 + cdots + 10)^2 = 55^2 = 3025
]
因此前十个自然数的平方的和与和的平方之差是 3025 − 385 = 2640。
求前一百个自然数的平方的和与和的平方之差。
解题思路
前 (n) 个数的和为 (frac{n cdot (n+1)}{2}),所以前 (n) 个数的和的平方为
[frac{n^2 cdot (n+1)^2}{4}
]
前 (n) 个数的平方和公式为
[frac{n cdot (n+1) cdot (2n+1)}{6}
]
所以本题的答案为
[frac{n^2 cdot (n+1)^2}{4} - frac{n cdot (n+1) cdot (2n+1)}{6}
]
实现代码如下:
#include <bits/stdc++.h>
using namespace std;
long long f(long long n) {
return n*n*(n+1)*(n+1)/4 - n*(n+1)*(2*n+1)/6;
}
int main() {
cout << f(100) << endl;
return 0;
}
答案为 (25164150)。