笨鳥

          天道酬勤,思者常新;博觀約取,厚積薄發;心如止水,氣貫長虹;淡泊明志,寧靜致遠。
          posts - 10, comments - 0, trackbacks - 0, articles - 1

              問題描述如下:
                  “1到10的平方和為:1^2 + 2^2 + ... + 10^2 = 385,和平方為:(1 + 2 + ... + 10)^2 = 55^2 = 3025,他們之間的差為3025-385=2640,求1到100的和平方與平方和之間的差值?”

              代碼實現如下:

              /**
               * 求前n個自然數和平方與平方和之差
               * 
          @param n
               * 
          @return
               
          */

              
          private static int getDifference(int n) {
                  
          int first = 0;
                  
          int second = 0;
                  
          for (int i = 1; i <= n; i++{
                      first 
          += i * i;
                      second 
          += i;
                  }

                  
          return second * second - first;
              }
              可以得到答案25164150。

              我們還可以使用數學的方法來解此題。
              1^2 + 2^2 + ... + n^2 =n(n+1)(2n+1)/6
              (1+2+3+...+n)^2 =(n(n+1)/2)^2
              相關證明可以去具體的了解,如:
              (n+1)^3 -(n-1)^3 =6n^2+2提示:證明平方和公式,1到n的求和公式就不提示了
              給出代碼:

              private static int getDifference1(int n) {
                  
          return (n*(n+1)/2)*(n*(n+1)/2)-n*(n+1)*(2*n+1)/6;
              }

              到此結束,請不吝賜教。
              @anthor ClumsyBird

          -----------------------------
          博觀約取,厚積薄發

          主站蜘蛛池模板: 元氏县| 甘谷县| 锦州市| 兴山县| 宜丰县| 武威市| 临清市| 上林县| 东兴市| 兴义市| 甘德县| 三明市| 新化县| 美姑县| 青海省| 桐城市| 房产| 宜君县| 灵宝市| 山东省| 朔州市| 淳化县| 龙山县| 吉木萨尔县| 五常市| 彝良县| 金乡县| 连江县| 景洪市| 海门市| 富蕴县| 无棣县| 新和县| 镇赉县| 梁平县| 江北区| 彭山县| 通江县| 年辖:市辖区| 临江市| 苏州市|