Project Euler problem 6

来源:互联网 发布:linux ssh远程登录命令 编辑:程序博客网 时间:2024/06/06 13:17

就是问 1到n的平方和 与1到n的和的平方 相差多少


不说暴力的方法了。

就是一个公式而已呀。。。。

不过平方和的公式即使不知道也没事。 可以随便推出来的。

公式一定是这样的f(n) = an^3 + bn^2 + cn + d 

然后f(0) = 0; f(1) = 1; f(2) = 5; f(3) = 14.


d = 0
a + b + c + d = 1
8a + 4b + 2c + d = 5
27a + 9b + 3c + d = 1

然后就求出来了 a = 1/3, b = 1/ 2, c = 1/6, d = 0;

带入后

f(n) = n * (n + 1) * (2* n + 1) / 6;

当然 此时要想证明完备  需要用数学归纳法证一下。

然后公式就出来了。。



还有一种推公式的方法

是从高次往低次推

n^3 - (n -1)^3 = 3* n ^ 2 - 3 * n + 1

 (n - 1) ^ 3 -(n - 2) ^ 3= 3 * (n - 1) ^ 2 - 3 * (n - 1) + 1

.........

1 ^ 3 - 0 ^ 3 = 3 * 1 ^ 2 - 3 * 1 + 1


然后左右分别相加求和

就会发现 1^2 + 2 ^ 2 + 3 ^ 2 + ..... + n ^ 2的公式就出来了

原创粉丝点击