using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Diagnostics; //输出结果: //和的平方减去平方的和的差值为:25164150 //所话费的时间为:00:00:00.0014256 //差值为:25164150 //所花费的时间为:00:00:00.0000921 //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. //求和的平方减去平方的和的差值。 //解决思路:经过拆项可以知道差值为两两乘积的两倍之和。 namespace Problem6 { class Program { static void Main(string[] args) { //方法一 Stopwatch sw = new Stopwatch(); sw.Start(); long sum = 0; int[] seq = new int[100]; //赋初始值 for (int i = 0; i < 100; i++) { seq[i] = i + 1; } //进行遍历求和 for (int i = 0; i < 100; i++) { for (int j = i+1; j <=99; j++) { sum += seq[i] * seq[j]; } } sum = sum * 2; Console.WriteLine("和的平方减去平方的和的差值为:{0}", sum); sw.Stop(); Console.WriteLine("所话费的时间为:{0}",sw.Elapsed); //方法2 Stopwatch sw1 = new Stopwatch(); sw1.Start(); int sum2 = 0; for (int i = 1; i < 100; i++) { sum2 += i * (100 + i + 1) * (100 - i) / 2; } sum2 *= 2; Console.WriteLine("差值为:{0}", sum2); sw1.Stop(); Console.WriteLine("所花费的时间为:{0}",sw1.Elapsed); } } }