Continuing to work my way through some of of Project Euler. Problem 6 solved by my code below. Is it better to use sumOfTheSquares += i*i
or utilize Math.Pow()
?
The sum of the squares of the first ten natural numbers is,
\1ドル^2 + 2^2 + ... + 10^2 = 385\$The square of the sum of the first ten natural numbers is,
\$(1 + 2 + ... + 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.
class Program
{
static void Main(string[] args)
{
Console.WriteLine(SumSquareDifference(100));
Console.ReadLine();
}
static int SumSquareDifference(int upperValue)
{
int sumOfTheSquares = 0;
for (int i = 1; i <= upperValue; i++)
{
sumOfTheSquares += (int)Math.Pow(i,2); //Can't formulate this myself...
}
int squareOfTheSums = (int)Math.Pow((upperValue + 1) * (upperValue / 2),2);
return squareOfTheSums - sumOfTheSquares;
}
}
1 Answer 1
I don't know about the difference between sumOfTheSquares += i*i
and Math.pow()
but the sum of squared of first n natural numbers is as follows
\$ 1^2 + 2^2 + 3^2 + 4^2 = \dfrac{n(n+1)(2n+1)}{6}\$
So its faster than using a for loop
Edit: General way to prove this is to use mathematical induction
Here's a link!
-
\$\begingroup\$ Where can I find the derivation of this? I read through a few examples but was unable understand them. I was trying to come up with the generic solution but it kept eluding me. \$\endgroup\$IvenBach– IvenBach2017年05月12日 05:13:50 +00:00Commented May 12, 2017 at 5:13
-
1\$\begingroup\$ there is a write up of this on trans4mind.com/personal_development/mathematics/series/… \$\endgroup\$AlanT– AlanT2017年05月12日 07:28:04 +00:00Commented May 12, 2017 at 7:28
-
\$\begingroup\$ @IvenBach, Concrete Mathematics by Graham, Knuth and Patashnik discusses the general indefinite sum of "rising powers", from which the sum of simple powers can be obtained. \$\endgroup\$Peter Taylor– Peter Taylor2017年05月12日 08:01:30 +00:00Commented May 12, 2017 at 8:01
-
1\$\begingroup\$ Please use \$\TeX\$ markup for math formulae. \$\endgroup\$vnp– vnp2017年05月12日 09:54:00 +00:00Commented May 12, 2017 at 9:54
-
\$\begingroup\$ @AlanT Found that site and tried to go through it late at night, failed. Went through it today and makes sense. Had to step through it manually for it to make sense. \$\endgroup\$IvenBach– IvenBach2017年05月13日 00:56:45 +00:00Commented May 13, 2017 at 0:56
the overview of problem
that is provided after solving almost any task onprojecteuler.net
(including this one)? \$\endgroup\$