首页 > 其他 > 详细

欧拉计划第6题题解

时间:2020-02-17 20:13:46      阅读:72      评论:0      收藏:0      [点我收藏+]

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\)

欧拉计划第6题题解

原文:https://www.cnblogs.com/quanjun/p/12322840.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!